1. Two Sum
problem description
Example
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].algorithm thought
code
//first
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
for(int i=0;i<nums.size();++i){
for(int j=i+1;j<nums.size();++j){
if(nums[i]+nums[j]==target)
return {i,j};
}
}
return {};
}
};
//third
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int,int> ma; //the value represented by map.first is target-nums[i]
//the value represented by map.second is index
for(int i=0;i<nums.size();++i){
if(ma.count(nums[i]))
return {ma[nums[i]],i};
else
ma[target-nums[i]]=i;
}
return {};
}
};
algorithm analysis
Last updated