class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
vector<int> outs(2);
for(int i=0;i<nums.size();i++){
for(int j=i+1;j<nums.size();j++){
if(nums[i]+nums[j]==target){
outs[0]=i;
outs[1]=j;
break;
}
}
}
return outs;
}
};
236ms,9.1M
第一版两层循环,时间太长,看了大佬写的后修改:24ms
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
vector<int> outs(2);
map<int,int> m;//hash
for(int i=0;i<nums.size();i++){
int temp = target-nums[i];
if(m.find(temp)!=m.end()){
outs[0]=m[temp];//对应的是temp的下标
outs[1]=i;
break;
}
m[nums[i]]=i;//若m中没有,则加入
}
return outs;
}
};
改为nums.pushback,16ms