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{} }
|