[LeetCode 1]Two Sum(C++)
//refer to the Internet
#include<iostream>
#include<vector>
#include<map>
using namespace std;
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
map<int, int> m;
vector<int> res;
for (int i = 0; i < nums.size(); ++i) {
m[nums[i]] = i;
}
for (int i = 0; i < nums.size(); ++i) {
int t = target - nums[i];
if (m.count(t) && m[t] != i) {
res.push_back(i);
res.push_back(m[t]);
break;
}
}
return res;
}
};
int main() {
vector<int> one;
one.push_back(2);
one.push_back(4);
one.push_back(6);
one.push_back(7);
one.push_back(8);
vector<int>::iterator iter;
vector<int>::iterator begin = one.begin();
vector<int>::iterator end = one.end();
cout << "one: " << endl;
for (iter = begin; iter != end; iter++)
{
static size_t i = 0;
cout << *iter << ",";
i++;
}
cout << endl;
cout << "size:" << one.size() << endl;
cout << "capacity: " << one.capacity() << endl;
Solution st;
vector<int> out = st.twoSum(one, 11);
vector<int>::iterator tmpIter;
vector<int>::iterator temBeg = out.begin();
vector<int>::iterator temEnd = out.end();
cout << "out: " << endl;
for (tmpIter = temBeg; tmpIter != temEnd; tmpIter++)
{
static size_t j = 0;
cout << *tmpIter << ",";
j++;
}
cout << endl;
system("pause");
return 0;
}
浙公网安备 33010602011771号