Мне вчера задали следующий вопрос:
Рассмотрим массив Java или C++, скажем, X
который отсортирован, и в нем нет двух одинаковых элементов. Как лучше всего найти индекс, скажем, что i
такой, что элемент в этом индексе также i
. Это X[i] = i
.
В качестве пояснения она также привела мне пример:
Array X : -3 -1 0 3 5 7
index : 0 1 2 3 4 5
Answer is 3 as X[3] = 3.
Лучшее, что я мог подумать, - это линейный поиск. После собеседования я много думал об этой проблеме, но не смог найти лучшего решения. Мой аргумент: элемент с обязательным свойством может быть где угодно в массиве. Так что это также может быть в самом конце массива, поэтому нам нужно проверить каждый элемент.
Я просто хотел подтвердить от сообщества, что я прав. Пожалуйста, скажите мне, что я прав :)