LeetCode 1. Two Sum
原题链接
简单
作者:
Ccc1Z
,
2020-07-16 13:31:36
,
所有人可见
,
阅读 401
思路
- 分析题意发现要找两数之和为target元素的下标
- 那么我们开一个HashMap {key}->nums[i] {value}->i
- 遍历nums一遍,每次找”当前数想要配对的那个数”是否已经在哈希表中
时间复杂度:扫描一遍 O(n)
class Solution {
public int[] twoSum(int[] nums, int target) {
int n = nums.length;
//{key}->nums[i] {value}->i
int idx1 = 0;
int idx2 = 0;
HashMap<Integer,Integer> map = new HashMap<>();
for(int i = 0 ; i < n ; i++){
int need = target - nums[i];
if(map.containsKey(need)){
idx1 = map.get(need);
idx2 = i;
break;
}
map.put(nums[i],i);
}
return new int[] {idx1,idx2};
}
}