题目:
思路:
这道题我看到时马上联想到的是用哈希,把numbers作为key,数组下标作为value存,遍历时查看是否存在target-当前数组的数字的key即可。但要注意的是,题目要求的是下标以1开始,数组以0开始,所以最后的结果需要+1。
代码:
class Solution {
public int[] twoSum(int[] numbers, int target) {
HashMap<Integer,Integer> hash=new HashMap<Integer,Integer>();
int[] a=new int[2];
for(int i=0;i<numbers.length;i++){
if(hash.containsKey(target-numbers[i])){
a[0]=hash.get(target-numbers[i])+1;
a[1]=i+1;
}else{
hash.put(numbers[i],i);
}
}
return a;
}
}