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;
}
浙公网安备 33010602011771号