16 головоломок из интервью в ведущих IT-компаниях

С какими задачами придется столкнуться на собеседовании молодому программисту?
1 минута23248

Теоретическая часть — о том, как начать к поиск работы, заинтересовать работодателя и подготовиться к собеседованию — освещена в отдельном материале. Переходим к  практической: с какими задачами и головоломками сталкиваются программисты на собеседованиях в топовых компаниях?

Независимо от языков, каждый программист должен обладать аналитическим и логическим мышлением и уметь выстраивать эффективные алгоритмы — именно эти способности интересуют HR и менеджеров в кандидатах.

Кстати, об алгоритмах. Узнать и увидеть больше в понятной форме можно на visualgo.net:

Потренируйтесь в составлении алгоритмов и решении логических задач перед поиском работы. Для примера, 16 реальных вариантов заданий, встречающихся в интервью  американских IT-компаний:

А. Сортировка

1. Сравните и сопоставьте различные алгоритмы сортировки. Приведите плюсы и минусы каждого из них. Для каких ситуаций лучше подходит тот или иной метод?

Б. Массивы и строки

2. Определите, все ли символы в строке уникальны

3. Расположите символы в строке в обратном порядке

4. Запишите слова в строке в обратном порядке

В. Связанные списки

5. Удалить дубли из неотсортированного связанного списка. А потом - то же самое, но без дополнительных переменных.

6. Найти N-й с конца элемент в списке

7. Определить, является ли список цикличным

8. Составить элементы списка в обратном порядке

Г. Стеки / Очереди

9. Создайте стек, который позволяет найти минимальное/максимальное значение за одну операцию (O(1))

10. Решите загадку “Ханойская Башня” с помощью стека

Ханойская башня. Условия:
На один из трех стержней нанизаны 8 колец в порядке уменьшения площади от нижнего к верхнему.
Задача: за наименьшее число ходов перенести всю пирамиду на другой стержень. За один раз разрешается переносить только одно кольцо; запрещено класть большее кольцо на меньшее.

11. Реализовать очередь с помощью двух стеков

Д. Деревья / Графы

12. Выяснить, есть ли маршрут между двумя узлами

13. Определить, сбалансировано ли бинарное дерево     

14. Вернуть высоту дерева

Е. Другие вопросы

15. Слить два отсортированных связанных списка чисел в один

16. Написать функцию, которая выводит все простые числа от 1 до N (включительно)

Проверьте себя и напишите в комментариях, какие задачи удалось решить, и сколько времени вам на это потребовалось.

Удачи!

Хотите стать программистом? Рекомендуем профессию «Веб-разработчик».

развитиеitкарьера
Нашли ошибку в тексте? Напишите нам.
Спасибо,
что читаете наш блог!