LeetCode one——Two sum(补充)
这道题目着重考察的是hashMap的key-value关系。
题目要求是2+7=9,所以将 m.put(nums[i], i); 放在if判断前也是可行的。但是当若题目中的要求变为2+2=4时,就不能放在前面了。这是为什么呢?
本人也是刚开始刷题,菜鸟一枚。想了一下午,归结于 放在前面就会出现key-value覆盖的问题。不知道对不对,有好心路过的大神指点一下。
public int[] twoSum2(int[] nums,int target) {
HashMap<Integer, Integer> m=new HashMap<>();
int[] res=new int[2];
for(int i=0;i<nums.length;i++)
{
//m.put(nums[i],i);
if(m.containsKey(target-nums[i])&&m.get(target-nums[i])!=i) {
res[0]=m.get(target-nums[i]);
res[1]=i;
break;
}
m.put(nums[i], i);
}
return res;
}