Two Sum

来源:互联网 发布:java se深入浅出 编辑:程序博客网 时间:2024/06/03 20:42

Given an array of integers, find two numbers such that they add up to a specific target number.

The function twoSum should return indices of the two numbers such that they add up to the target, where index1 must be less than index2. Please note that your returned answers (both index1 and index2) are not zero-based.

You may assume that each input would have exactly one solution.

Input: numbers={2, 7, 11, 15}, target=9
Output: index1=1, index2=2

给出一组数,从中找两个数之和为给定的数值,返回这两个数的坐标。

//map.count()返回0或1表示数字是否存在于map中

class Solution {public:    vector<int> twoSum(vector<int> &numbers, int target) {       int i, sum;          vector<int> results;          map<int, int> hmap;          for(i=0; i<numbers.size(); i++){              if(!hmap.count(numbers[i])){                  hmap.insert(pair<int, int>(numbers[i], i));              }              if(hmap.count(target-numbers[i])){                  int n=hmap[target-numbers[i]];                  if(n<i){                      results.push_back(n+1);                      results.push_back(i+1);                      return results;                  }              }          }          return results;      }};


0 0
原创粉丝点击