//数组:2 6 7 11 4 3 目标:9
//下标:0 1 2 3 4 5
//位置:1 2 3 4 5 6
//当前元素依次往后遍历,在前边元素中找(target-当前元素)
/*
2 7
6 3
2 0
6 1
*/
#include<iostream>
#include<vector>
#include<map>
using namespace std;
vector<int> vec_index;
vector<int> twosum(vector<int>& vec,int target)
{
map<int,int> umap;//[元素,下标]
for(int i=0;i<vec.size();i++)
{
int other=target-vec[i];
if(umap.find(other)!=umap.end())
{
vec_index.push_back(i);
vec_index.push_back(umap[other]);
return vec_index;
}
umap[vec[i]]=i;
}
return vec_index;
}
int main()
{
int arr[6]={2,6,7,11,4,3};
vector<int> vec(arr,arr+6);
vector<int> res;
res=twosum(vec,9);
for(int i=0;i<res.size();i++)
{
cout<<res[i];
}
cout<<endl;
return 0;
}
//g++ two_sum.cc -o two_sum
// ./two_sum
1_two_sum
最新推荐文章于 2023-04-03 20:36:58 发布