В недавнем интервью меня спросили:
Найдите средний элемент отсортированного списка неизвестной длины, начиная с первой позиции.
Я ответил так:
Имеем 2 счетчика позиций:
счетчик1 counter2
Увеличиваем счетчик1 на 1 и счетчик2 на 2. Когда счетчик2 достигнет конца списка, счетчик1 будет в середине. Я чувствую, что это неэффективно, потому что я пересматриваю узлы, которые я уже видел. В любом случае, есть ли более эффективный алгоритм?