Leetcode-1.Two Sum
Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exactly one solution, and you may not use the same element twice.
Example:
Given nums = [2, 7, 11, 15], target = 9, because nums[0] + nums[1] = 2 + 7 = 9, return [0, 1].
c++:
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int, int> table;
for (int i = 0; i < nums.size(); ++i){
table[nums[i]] = i;
}
vector<int> result;
for (int i = 0; i < nums.size(); ++i){
int complement = target - nums[i];
if (table.count(complement) && map_.find(complement)->second != i){
result.push_back(i);
result.push_back(table.find(complement)->second);
}
if(result.size() > 0)
break;
}
return result;
}
};