Решён
Как бы вы ответили на этот вопрос? Тест для собеседования в IT
Готовлюсь к собесу в яндекс, дали задачу на алгоритмы. Вопрос такой: есть массив целых чисел, нужно найти два числа, сумма которых равна заданному target. Вернуть их индексы.
Пример: nums = [2, 7, 11, 15], target = 9. Ответ: [0, 1].
Я написал через двойной цикл O(n^2), но сказали что это медленно. Как бы вы сами ответили на этот вопрос на интервью? Что они хотят услышать?
Это именно то что мне нужно было, спасибо! Теперь понял логику. А почему seen[n] = i в конце, а не в начале цикла?
Потому что если положить сначала - можно использовать один и тот же элемент дважды. Например target=4, nums=[2,3]. Если сначала кладешь 2 в словарь, потом считаешь diff=2 и находишь его же. А задача требует два разных индекса.