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)
Так можно пройтись по массиву один раз и сразу найти ответ. 🚀
Обсуждение 46
Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.
Обсудить в Telegram