Контест Junior Коллекции и строки спрашивают часто обновлено
Задача на Swift: два товара на заданную сумму
Условие
В корзине n товаров с ценами. Найдите два разных товара, сумма цен которых равна target. Среди всех пар выберите пару с наименьшим номером второго товара j, а при равенстве с наименьшим номером первого i (i < j). Нумерация с 1.
Первая строка: n target (1 ≤ n ≤ 10⁴, |target| ≤ 2·10⁹). Вторая: n целых чисел по модулю не больше 10⁹.
Выведите i j или -1, если пары нет.
Пример
5 9
2 7 11 15 1
1 2
Как подойти
Словарь значение → индекс, один проход.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Предыдущий вопрос
Задача на Swift: k самых частых слов
Следующий вопрос
Ленивые последовательности lazy
Ещё по теме «Коллекции и строки»
- Сложность append у Array в Swift
- ContiguousArray и мост с NSArray
- Подсчёт частот в словаре
- Порядок ключей в Dictionary
- Сложность операций коллекций Swift
- String и NSString: длина и индексы
- Как взять n-й символ строки в Swift
- Сколько символов в строке с флагом