Независимо от языков, каждый программист должен обладать аналитическим и логическим мышлением, а также уметь выстраивать эффективные алгоритмы — именно эти способности интересуют HR и менеджеров в кандидатах. Потренируйтесь в составлении алгоритмов и решении логических задач. Представляем 16 реальных вариантов заданий, встречающихся в интервью американских IT-компаний.
А. Сортировка
1. Сравните и сопоставьте различные алгоритмы сортировки. Приведите плюсы и минусы каждого из них. Для каких ситуаций лучше подходит тот или иной метод?
Б. Массивы и строки
2. Определите, все ли символы в строке уникальны
3. Расположите символы в строке в обратном порядке
4. Запишите слова в строке в обратном порядке
В. Связанные списки
5. Удалить дубли из неотсортированного связанного списка. А потом - то же самое, но без дополнительных переменных.
6. Найти N-й с конца элемент в списке
7. Определить, является ли список цикличным
8. Составить элементы списка в обратном порядке
Г. Стеки / Очереди
9. Создайте стек, который позволяет найти минимальное/максимальное значение за одну операцию (O(1))
10. Решите загадку “Ханойская Башня” с помощью стека
Ханойская башня. Условия:
На один из трех стержней нанизаны 8 колец в порядке уменьшения площади от нижнего к верхнему.
Задача: за наименьшее число ходов перенести всю пирамиду на другой стержень. За один раз разрешается переносить только одно кольцо; запрещено класть большее кольцо на меньшее.
11. Реализовать очередь с помощью двух стеков
Д. Деревья / Графы
12. Выяснить, есть ли маршрут между двумя узлами
13. Определить, сбалансировано ли бинарное дерево
14. Вернуть высоту дерева
Е. Другие вопросы
15. Слить два отсортированных связанных списка чисел в один
16. Написать функцию, которая выводит все простые числа от 1 до N (включительно)
Проверьте себя и напишите в комментариях, какие задачи удалось решить, и сколько времени вам на это потребовалось.
Если понравилась статья, ставьте лайк и подписывайтесь на канал.