携程-two sum-c++

image.png
image.png
/*
 * twosum.cpp
 *
 *  Created on: 2017年9月21日
 *      Author: Administrator
 */

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <map>
#include <string>
#include <vector>
#include <set>
#include <queue>
#include <deque>
#include <stack>
#include <algorithm>
#include <unordered_map>
using namespace std;


/*请完成下面这个函数,实现题目要求的功能
当然,你也可以不按照下面这个模板来作答,完全按照自己的想法来 ^-^
******************************开始写代码******************************/
vector < int > twoSum(vector < int >& nums, int target) {
      int i, sum;
      vector<int> results;
      map<int, int> hmap;
      for(i=0; i<nums.size(); i++){
          if(!hmap.count(nums[i])){
              hmap.insert(pair<int, int>(nums[i], i));
         }
         if(hmap.count(target-nums[i])){
             int j=hmap[target-nums[i]];
             if(j<i){
                 results.push_back(j+1);
                 results.push_back(i+1);
                 return results;
             }
         }
     }
     return results;
}
/******************************结束写代码******************************/


int main() {
    vector < int > res;

    int _nums_size = 0;
    cin >> _nums_size;
    cin.ignore (std::numeric_limits<std::streamsize>::max(), '\n');
    vector<int> _nums;
    int _nums_item;
    for(int _nums_i=0; _nums_i<_nums_size; _nums_i++) {
        cin >> _nums_item;
        cin.ignore (std::numeric_limits<std::streamsize>::max(), '\n');
        _nums.push_back(_nums_item);
    }

    int _target;
    cin >> _target;
    cin.ignore (std::numeric_limits<std::streamsize>::max(), '\n');

    res = twoSum(_nums, _target);
    for(int res_i=0; res_i < res.size(); res_i++) {
        cout << res[res_i] << endl;;
    }
    return 0;
}

提交结果:
tmap.insert()报错
参考:
http://www.cnblogs.com/bakari/p/4871254.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在此特此声明:一下所有链接均来自互联网,在此记录下我的查阅学习历程,感谢各位原创作者的无私奉献 ! 技术一点一点积...
    远航的移动开发历程阅读 13,868评论 12 197
  • 沙滩海 沙滩上有个小朋友和一个大朋友 他们一起在堆沙堡 并且他们都是男生 堆啊堆 堆到太阳快下山 最后才堆完沙堡
    野蔷薇1986阅读 845评论 0 0
  • 三清山随笔 三清山又名少华山、丫山,位于中国江西省上饶市玉山县与德兴市交界处,距玉山县城...
    蒛脈膊阅读 4,400评论 0 0
  • 时间:2017年2月9 周四 地点:家楼下 天气:雪转晴 我怎么如此幸运由于晚上准备充分,今天早上炒了个菜,就...
    静一心一慢阅读 903评论 0 0