Как справиться с проблемами алгоритма/структуры данных в процессе собеседования?

Недавно я проводил собеседование по целому ряду позиций в области разработки программного обеспечения, и почти каждое собеседование, с которым я столкнулся, было сосредоточено в основном на алгоритме и структурах данных, интересно, как можно столкнуться с неизвестной проблемой и разработать алгоритм для он использует соответствующие структуры данных, которые тоже находятся в промежутке в минутах - 5 минут при макс.

Я был бы очень признателен, если бы кто-то мог рассказать о проблеме и как лучше всего взять интервью с точки зрения проблем с алгоритмами/структурами данных.

Спасибо.

Ответ 1

Когда я беседовал с людьми и задавал им вопросы, я не ищу ответа (обязательно). Расскажите об этом - обсудите, что вы думаете.

Как интервьюер, увидев логический ход мысли, на меня наберут больше очков, чем просто "я бы сделал...". Если я вижу, что вы знаете, как подойти к проблеме, это демонстрирует способность решать проблемы, что обычно является целью.

Ответ 2

Задача этих вопросов заключается в том, что, как люди, которые создают программное обеспечение, мы должны знать этот материал и иметь возможность применять их. Это умение является основополагающим компонентом и использует его за пределами простого прохождения интервью.

Большинство тем обсуждаются на любом курсе университетского алгоритма. Но, чтобы быть действительно хорошими в них, вы можете попробовать практиковать проблемы из TopCoder, SPOJ и UVa (и множество других подобных сайтов).

Ответ 3

Если вы проводите собеседование для практической инженерной работы, с некоторыми аспектами дизайна и архитектуры, ожидайте некоторые основные проблемы с алгоритмом и структурой данных. Это структурные блоки хорошего программиста.

Я бы познакомился с базовыми структурами данных и общими алгоритмами (сортировка, поиск, совпадение) и присущими ему возможностями, ограничениями и задачами каждого из них. 5-минутный вопрос просто представлен, чтобы увидеть, как вы приближаетесь к проблеме, а не как ее решить.

Ответ 4

Стив Йегг имеет действительно отличную запись в блоге о работе в Google, где он обращается к тому, что вам нужно знать об алгоритмах для Google интервью и какие материалы для подготовки вы должны прочитать.

Ответ 5

Это действительно туманный вопрос, учитывая, что вы спрашиваете, как быть готовым писать алгоритмы с структурами данных. Это похоже на вопрос, как знать, как делать вещи с материалами. Какие алгоритмы они ожидают от вас? Какие структуры данных они просят вас использовать или производить? Интервьюер (вероятно) пытается понять, как вы думаете. К сожалению, могут быть и некоторые, которые ищут "ответы на книги". Некоторые примеры были бы полезными.

Ответ 6

Возможно, вам захочется взглянуть на книгу о структурах данных и алгоритмах. Помимо тех, которые перечислены в блоге, рекомендованном Асафом (и быстрый взгляд показывает, что блог стоит прочитать), я наслаждаюсь Как думать Об алгоритмах (которые я получил от ILL). Это учебник в колледже, который дает общие закономерности алгоритмического мышления, а также конкретные примеры алгоритмов (и некоторые упражнения имеют ответы в ответ).

Ответ 7

Это очень актуальный вопрос.

Когда я просматриваю структуры данных, я нахожу двоичный поиск, сортировку пузырьков, хэш, список, карту.

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

Подготовка к такому интервью - это как неспособность найти конец веревки и попадание в ту же точку, что и вы начали снова и снова.

Я прочитал, тогда я думаю о вопросе интервью, и я считаю себя невежественным. его ilke бесконечный цикл.

Так расстроен.