s7.h
#ifndef T0916_3_S7_H
#define T0916_3_S7_H
#include <unordered_map>
#include <vector>
#include <iostream>
using namespace std;
class s7 {
public:
vector<int> twoSum(vector<int>&nums,int target) {
unordered_map<int, int> record;
for (int i = 0; i < nums.size(); i++) {
int complement = target - nums[i];
if (record.find(complement) != record.end()) {
int res[2] = {i, record[complement]};
return vector<int>(res, res + 2);
}
record[nums[i]] = i;
}
throw invalid_argument("the input has no solution");
}
};
#endif
main.cpp 测试
#include <iostream>
#include <unordered_map>
#include <vector>
#include <iostream>
using namespace std;
#include "s7.h"
int main(){
int a[6]={1,2,3,4,6,3 };
int target =7;
vector<int> c= vector<int>(a,a+6);
s7 b;
vector<int> result =b.twoSum(c,target);
for(int i=0;i< (result).size();i++)
cout<< result[i]<<endl;
return 0;
}
效果
