Найти индексы массива, которые в сумме дают число
Задание такое: Дан массив целых чисел. Необходимо реализовать метод, который возвращает индексы массива, значения которых в сумме дают число переданное в массив. Предполагается, что массив содержит только уникальные числа и всегда имеет искомые числа. Один и тот же элемент не может быть использован дважды. array = [3, 8, 15, 17], Number = 23 result = [1,2]
Я решил бы это через массив линейно, то есть искал бы значение равное разнице сначала 23- первый элемент и так далее, но как это сделать быстрее используя коллекции?
Ответы (1 шт):
Автор решения: Илья
→ Ссылка
Возможен вот такой вариант решения задачи, достаточно простой и понятный.
public int[] twoSum(int[] nums, int target) {
int index = 0;
int index2 = 1;
for (int i = 0; i < nums.length - 1; i++) { // "- 1" т.к. массив начинается с нуля.
for (int j = i + 1; j < nums.length; j++) {
if (nums[i] + nums[j] == target) {
index = i;
index2 = j;
}
}
}
int[] list = {index, index2};
return list;
}
Если что то не понятно, напишите мне, постараюсь помочь.