- 暴力解法
两次循环
#include <algorithm>
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
int index=nums.size();
for(int i=0;i<index;i++)
{
for(int j=i+1;j<index;j++)
{
if(nums[i]+nums[j]==target)
{
vector<int> vec{i,j};
return vec;
}
}
}
}
};
2.利用map ,存储搜索 two pass
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
map<int,int> dict;
for(int i=0;i<nums.size();i++)
{
dict[nums[i]]=i;//构建词典
}
for(int i=0;i<nums.size();i++)
{
int cha=target-nums[i];
cout<<i<<"res"<<cha<<"dict"<<dict[cha]<<endl;
if(dict[cha]>0&&dict[cha]!=i)
{
vector<int> vec{i,dict[cha]};//查询是否怎么存在
return vec;
}
}
}
};
3.