leetcode:数组之Two Sum
给定一个数组,与一个目标值,然后从数组中找出两个元素之和等于目标值,输出这两个元素的下标索引。
例如:数组a=[2,11,7,15],目标值9,输出下标索引为index1=1,index2=3;
c++实现:
#include <iostream>
#include <vector>
#include <unordered_map>
using namespace std;
vector<int> twoSum(vector<int> num,int target)
{
unordered_map<int,int> mapping;
vector<int> result;
for(int i=0;i<num.size();i++)
mapping[num[i]]=i;
for(int i=0;i<num.size();i++)
{
int gap=target-num[i];
if(mapping.find(gap)!=mapping.end())
{
result.push_back(i+1);
result.push_back(mapping[gap]+1);
break;
}
}
return result;
}
int main()
{
int a[4]={2,11,7,15};
vector<int> arr(a,a+4);
vector<int> index;
int target=9;
index=twoSum(arr,target);
cout<<"index1= "<<index[0]<<endl<<"index2= "<<index[1]<<endl;
return 0;
}
测试结果: