Rust задача для разминки

У тебя есть вектор чисел, и нужно вернуть индексы двух элементов, сумма которых равна заданному числу target.
Но — нельзя использовать вложенные циклы (O(n²)). Сделай решение за O(n).

Условие
fn two_sum(nums: Vec<i32>, target: i32) -> Option<(usize, usize)> {
// твой код
}


Пример:
let nums = vec![2, 7, 11, 15];
let target = 9;
// ожидаем Some((0,1)), потому что 2 + 7 = 9

Подсказка 💡

- Подумай про использование HashMap:
- сохраняй уже просмотренные числа и их индексы
- при просмотре нового элемента проверяй, есть ли в HashMap нужное дополнение (target - num)

Так можно пройтись по массиву один раз и сразу найти ответ. 🚀
16
🤷‍♂ 6
👍 6
46 35 4K

Обсуждение 46

Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.

Обсудить в Telegram