首页 > 代码库 > 2Sum

2Sum

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.

Example:

Given nums = [2, 7, 11, 15], target = 9,Because nums[0] + nums[1] = 2 + 7 = 9,return [0, 1].

 

UPDATE (2016/2/13):
The return format had been changed to zero-based indices. Please read the above updated description carefully.

class Solution {public:  vector<int> twoSum(vector<int>& nums,int target){        vector<int> res;        unordered_map<int,int> mapping;        for(size_t i=0;i<nums.size();i++){            mapping[nums[i]] = i;        }        for(size_t i=0;i<nums.size();i++){            const int key = target - nums[i];            if(mapping.find(key) != mapping.end()){                if(i != mapping[key]){                    res.push_back(i);                    res.push_back(mapping[key]);                    break;                }            }        }        return res;    }};

 

2Sum