题目
https://leetcode.com/problems/two-sum/
思路
盲猜N^2的遍历会超时,没有试。O(N)的遍历需要用到哈希表,直接用map存值和对应的下标,一次遍历即可。
代码
// by java
public int[] twoSum(int[] nums, int target) {
Map<Integer, Integer> value2index = new HashMap<Integer, Integer>();
for (int i = 0; i < nums.length; i ++) {
if (value2index.get(target - nums[i]) != null) {
int [] ret = {value2index.get(target - nums[i]), i};
return ret;
}
value2index.put(nums[i], i);
}
return null;
}
网友评论