1.两数之和(暴力&Hash)
思路:法1:暴力。时间复杂度 .
法2:利用 自带的哈希表实现每次 查找。时间复杂度 .
第一次玩 。还有点不适应。
暴力代码:
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
int l=nums.size();
for(int i=0;i<l-1;i++)
for(int j=i+1;j<l;j++)
{
if(nums[i]+nums[j]==target){
return {i,j};
}
}
return {};
}
};
Hash代码:
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int,int>mp;
for(int i=0;i<nums.size();i++){
if(mp.count(target-nums[i])){
return {mp[target-nums[i]],i};
}
mp[nums[i]]=i;
}
return {};
}
};