LeetCode Hot100 | Day8 | 两数之和

1.两数之和

1. 两数之和 - 力扣(LeetCode)

还是老套路,哈希表里面存储nums[i]和下标i,然后去检查如果nums[i]作为第一个数字可行与否,也就是判断target-nums[i]的值在不在数组中,如果可行的话直接返回,如果不行的话就插入当前的nums[i]和其下标

CPP版本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int,int> s;
for(int i=0;i<nums.size();i++)
{
if(s.find(target-nums[i])!=s.end())
return {s[target-nums[i]],i};
else
s.insert({nums[i],i});
}
return {};
}
};

GO版本

1
2
3
4
5
6
7
8
9
10
11
12
func twoSum(nums []int, target int) []int {
m:=make(map[int]int)
for index,val:=range nums{
if pre,ok:=m[target-val];ok{
return []int{pre,index}
}else{
m[val]=index
}
}
return []int{}
}