Короче, отвечаю на вопрос, как же я готовлюсь к лайв-кодингу перед собесами?
На самом деле, в лайв-кодинге мне очень помог собес в Yandex, который я проходил в начале лета 2022. В Yandex очень большие требования, очень много этапов на решение задач, и очень много полезных материалов, как готовиться именно к их собесам и в каком формате решать задачи.
Поэтому после такой сильной подговотки я щелкал как орешки собесы в белорусские аутсорсы и продукты.
————————————
В общем и целом, вот частые задачи, которые я прогоняю перед собесами.
Hash table:
https://leetcode.com/problems/single-number/ - решить за O(1) по памяти
https://leetcode.com/problems/two-sum/
https://leetcode.com/problems/group-anagrams/
https://leetcode.com/problems/valid-anagram/
Promise
1) fetchWithRetry. Нужно написать функцию, которая принимает в себя promise и объект с функцией retry. fetchWithRetry должна запускать promise заново в случае неудачи. Функция retry во втором параметре возвращает либо число, на которое необходимо отложить перезапуск promise (в ms) либо false (false означает, что перезапускать не нужно, просто необходимо вернуть результат в состоянии reject).
fetchWithRetry(promise, {
retry: (attempts) => {
if (attempts < 3) {
return 500
}
return false
}
})
2) Promise.sleep(2000). Я думаю тут все понятно, необходимо написать функцию, которая выполняет promise через заданное количество милисекунд.
Остальное:
1) https://leetcode.com/problems/valid-palindrome/ - решить за O(1) по памяти
2) https://leetcode.com/problems/coin-change/ - жадные алгоритмы
3) Написать самому функцию, которая реализует бинарный поиск
4) Написать реализацию debounce и throttle
5) Написать реализацию некоторых сортировок: bubble sort, quick sort и др. Кстати, про реализацию quick sort у меня есть статья на Habr: https://habr.com/ru/post/490304/
6) https://leetcode.com/problems/merge-intervals/
————————————
Такую годноту вам подогнал! Поэтому поставьте огонек 🔥 к этому посту и поделитесь им c вашими друзьями/знакомыми 😏
Post #18
1.3K