Неверное условие внутреннего цикла index2 < nums.length - 1
, оно должно быть index2 < nums.length
. Например, если вам дают
nums = {1, 2, 3, 4} target = 7
Ваш текущий код
for (index=0; index < nums.length; index++) {
for (int index2 = index + 1 ; index2 < nums.length - 1; index2++) {
...
}
никогда не будет тестировать 3 + 4
.
Почему все эти sum
и ans
?
public int[] twoSum(int[] nums, int target) {
for (int i = 0; i < nums.length; ++i)
for (int j = i + 1; j < nums.length; ++j)
if (nums[i] + nums[j] == target)
return new int[] {i, j}; // we've found it! Let's return it
return new int[0]; // let's return an empty array, not {0, 0} one
}