题解 | #两数之和#
两数之和
http://www.nowcoder.com/practice/20ef0972485e41019e39543e8e895b7f
public int[] twoSum (int[] numbers, int target) {
// write code here
//target=a+b
//a=target-b
//从数组中找到a就行了
int[] res=new int[2]; //保存结果的下标
HashMap<Integer,Integer> map=new HashMap();
for(int i=0;i<numbers.length;i++){
int a=target-numbers[i]; //2.从map中找a这个数
if(map.containsKey(a)){
res[0]=map.get(a)+1; //3.a的下标,value中保存
res[1]=i+1; //4.b的下标
return res;
}
map.put(numbers[i],i); //1.把数组放到map中,map中的value存的是数组下标
}
return res;
}
