比较简单,用一个
Map
记录曾经遍历过的元素,计算出差值,如果符合,直接返回结果,时间复杂度O(n)
,空间复杂度O(n)
public int[] twoSum(int[] nums, int target) {
HashMap<Integer,Integer> map = new HashMap<>();
for(int i = 0; i < nums.length;i++) {
Integer idx = map.get(target - nums[i]);
if (idx != null) {
return new int[]{idx,i};
}
map.put(nums[i],i);
}
return null;
}
网友评论