NC61 两数之和

输入:
[3,2,4],6
返回值:
[2,3]
说明:
因为 2+4=6 ,而 2的下标为2 , 4的下标为3 ,又因为 下标2 < 下标3 ,所以返回[2,3]   
public static int[] twoSum (int[] numbers, int target) {
// write code here
// key对应target的加数 value对应下标
Map<Integer,Integer> map=new HashMap<>();
int[] ints=new int[2];
for (int i = 0; i < numbers.length; i++) {
int temp=target-numbers[i];
if (map.containsKey(temp) && map.get(temp) != i){
// 之所以要+1是因为题目要求,因为数组的下标从0 开始的。
ints[0] = map.get(temp)+1;
ints[1] = i+1;
break;
}else {
map.put(numbers[i],i);
}
}
return ints;
}

  

posted @ 2022-01-20 15:19  dgdsflkgheghsegegwsf  阅读(82)  评论(0)    收藏  举报