Недавно я взял интервью у компании-разработчика программного обеспечения. Я не прошел через сам первый раунд.
Может быть, я слишком медленно формировал идеи или решал проблемы и был недостаточно хорош для компании, для которой я брал интервью.
Я хотел бы получить второе мнение о моем интервью, и я не могу найти кого-то лучше, чем
Сообщество stackoverflow.
Так что это интервью было основным
- Введение
- Почему вы подали заявку на эту должность?
- Один технический вопрос (подробности ниже)
- Какое худшее программное обеспечение вы использовали? Зачем? Улучшение
- Какое лучшее программное обеспечение вы использовали? зачем улучшать?
Оригинальный технический вопрос (по заданию интервьюера)
Учитывая диапазон чисел M ..... M + N-1, я создаю массив размером N и заменяю один из элементов в этом массиве числом.
Как вы узнаете, какой элемент заменен?
Я попросил его повторить вопрос еще раз, так как я думал, что ввода недостаточно для решения проблемы.
Он повторил заявление то же самое
Q. Тогда я спросил его, массив ли вы получили из диапазона числа в отсортированном порядке?
Опрашивающий: не обязательно
Q Мы знаем массив перед тем, как заменить элемент?
Опрашивающий: Нет
Затем я начал писать псевдокод (при этом громко размышляя). Я сразу понял, что это не будет работать, если исходный массив имел дубликаты. Так что я застрял на некоторое время, думая, как, черт возьми, это решить. Затем, наконец, я задал вопросы, которые имели значение
Q Как вы выбираете элементы из диапазона для формирования массива?
Интервьюер: У меня есть диапазон чисел M, M + 1, M + 2 .... M + N-1. Число выбирается только один раз. И я формирую массив размером N. (что, по сути, означает отсутствие дубликатов и выбор всех элементов в диапазоне)
Q А как насчет номера, которым вы его заменяете? Он лежит в том же диапазоне?
Опрашивающий: Да, это так.
Тогда все стало ясно
Вот что он имел в виду:
Q У меня есть диапазон чисел, начиная с M, например, M, M + 1, M + 2, M + 3 ... M + N. Я формирую массив размера N, так что каждый элемент выбирается только один раз, а исходный массив не имеет дубликатов. Я заменяю один из элементов в массиве числом в том же диапазоне. Узнайте, что я выбрал из диапазона для замены?
Это эквивалентно поиску дубликатов в массиве. Здесь после замены будет только одна пара дубликатов. Мы можем легко узнать это за O (N ^ 2) или O (nlogn) время. Я дал ему оба алгоритма.
В конце концов, я не удержался и спросил его: «Как я справился с этим вопросом?
Очевидно, он не был удовлетворен моим подходом к этому вопросу.
Как вы думаете, что я должен был сделать по-другому, отвечая на этот вопрос?