题解 | #两数之和#
两数之和
http://www.nowcoder.com/practice/20ef0972485e41019e39543e8e895b7f
import java.util.*;
public class Solution {
public int[] twoSum (int[] numbers, int target) {
// write code here
// 哈希法
Map<Integer,Integer> map = new HashMap<Integer,Integer>();
//因为已知numbers的长度最小是2,所以可直接添加第一个
map.put(numbers[0],1);
for(int i=1;i<numbers.length;++i){
/*
判断target-numbers[i]是否存在于map中
存在执行return语句;
不存在则添加(numbers[i],i+1)到map中,进入下一个
*/
if(map.containsKey(target-numbers[i]))
return new int[]{map.get(target-numbers[i]),i+1};
map.put(numbers[i],i+1);
}
return new int[0];
}
}
阿勇算法解集 文章被收录于专栏
对一些基础的,经典的题目的算法题解,每道题的题解尽量做到一题多解,举一反三。其中每一个题解中,若是参考了其他牛人的想法,我会备注出来。