[1,2,3],target为2
i = 1
j = i的话,j = 1
nums[i]+nums[j]=2,
但实际上i和j都指向数组第一个元素,不符题意
会有重复
两数之和,不是同一个数加2次;
如果数组是【2,2,1,1】,正确答案应该是【1,2】
如果j=i+1 则输出【1,2】,对
如果j=1 则输出【1,1】,错。
这样描述你应该就知道自己错在哪儿了,其次这不是最高效的做法,用hash
算法是最快的。
// 数组
int[] nums = new int[]{1,1,2,10,20,30};
// 目标值
int target=2;
HashMap<Integer,Integer> map = new HashMap();
for (int i = 0; i < nums.length; i++) {
if (map.containsKey(target-nums[i])){
System.out.println("["+i+","+map.get(target-nums[i])+"]");
}
map.put(nums[i],i);
}
}
```java
```