#include <vector> #include <iostream> #include <algorithm> using namespace std; class Solution { public: vector<int> twoSum(vector<int> &numbers, int target) { vector<pair<int int=""> > temp; for( unsigned int i=0; i<numbers.size(); ++i ) { pair<int int=""> nums; nums.first = numbers[i]; nums.second = i; temp.push_back(nums); } sort(temp.begin(),temp.end()); vector<int> sum_num; int i=0; int j=temp.size()-1; while (i!=j) { if (target==(temp[i].first+temp[j].first)) { if (temp[i].second>temp[j].second) { sum_num.push_back(temp[j].second); sum_num.push_back(temp[i].second); } else { sum_num.push_back(temp[i].second); sum_num.push_back(temp[j].second); } if ((i+1)==j) { return sum_num; } else { ++i; --j; } } else if (target>(temp[i].first+temp[j].first)) { ++i; } else { --j; } } } }; int main() { Solution sd; vector<int> numbers; numbers.push_back(0); numbers.push_back(3); numbers.push_back(4); numbers.push_back(0); vector<int> res=sd.twoSum(numbers,0); return 0; } </int></int></int></int></int></int></int></algorithm></iostream></vector>