На прошлой неделе я писал о разговоре с младшим разработчиком, у которого возникли проблемы с интервью Amazon. На этой неделе я пишу об онлайн-тестировании Apple. Далее телефонное интервью!
Два вопроса, с которыми я столкнулся, неплохие и хороший способ попрактиковаться в ваших алгоритмах онлайн-оценки в крупных технических компаниях.
Вопрос 1:
Для массива, содержащего n различных чисел, взятых из 0, 1, 2, ..., n
, найдите то, которое отсутствует в массиве.
Пример 1:
Input: [3,0,1] Output: 2
Пример 2:
Input: [9,6,4,2,3,5,7,0,1] Output: 8
Вопрос 2:
Последовательность «подсчитай и скажи» - это последовательность целых чисел, первые пять членов которой выглядят следующим образом:
1. 1 2. 11 3. 21 4. 1211 5. 111221
1
читается как "one 1"
или 11
. 11
читается как "two 1s"
или 21
. 21
читается как "one 2
, затем one 1"
или 1211
.
Для заданного целого числа n, где 1 ≤ n ≤ 30, сгенерируйте n -й член последовательности «подсчитай и скажи». Вы можете сделать это рекурсивно, другими словами, предыдущий член считывает цифры, считая количество цифр в группах одной и той же цифры.
Примечание. Каждый член последовательности целых чисел будет представлен в виде строки.
Пример 1:
Input: 1 Output: "1" Explanation: This is the base case.
Пример 2:
Input: 4 Output: "1211" Explanation: For n = 3 the term was "21" in which we have two groups "2" and "1", "2" can be read as "12" which means frequency = 1 and value = 2, the same way "1" is read as "11", so the answer is the concatenation of "12" and "11" which is "1211".
Я перечислю первые 10 терминов, чтобы наглядно представить последовательность:
1. 1 2. 11 3. 21 4. 1211 5. 111221 6. 312211 7. 13112221 8. 1113213211 9. 31131211131221 10. 13211311123113112211
Пожалуйста, попробуйте отправить ответы на этой неделе на JS. И, как всегда, после нескольких попыток / комментариев выложу свои решения проблем. Удачи, и я с нетерпением жду ваших ответов!