LeetCode 1. 【Java】1. Two Sum
原题链接
简单
作者:
tt2767
,
2020-02-20 15:15:24
,
阅读 568
/*
1. 反向索引每个数的下标,查找target-numgei[i]是否存在
2. 必须是2个数字所以需要特判下是否是自身组成的
3. 时间O(N),空间O(N)
*/
class Solution {
public int[] twoSum(int[] nums, int target) {
Map<Integer, Integer> mapping = new HashMap<>();
for (int i = 0 ; i < nums.length ; i ++){
mapping.put(nums[i], i);
}
for (int i = 0 ; i < nums.length; i ++){
int diff = target - nums[i];
if (mapping.containsKey(diff)){
int index = mapping.get(diff);
if (i == index) continue;
int[] res = {i, index};
return res;
}
}
return null;
}
}