码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode 之Sum系列(七)

时间:2016-05-14 15:34:27      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:

   第一题是Two Sum

技术分享

                        同样是用哈希表来做,需要注意的是在查打gap是要排除本身。比如target为4,有一个值为2,gap同样为2。

                     

技术分享
 vector<int> twoSum(vector<int> &num, int target)
      {
          unordered_map<int, int> mapping;
          vector<int> result;
          for (int i = 0; i < num.size(); i++)
              mapping[num[i]] = i;

          for (int i = 0; i < num.size(); i++)
          {
              int gap = target - num[i];
              //第二个判断条件更准确的是mapping[gap]!=i,防止选到自身
              if (mapping.find(gap) != mapping.end()&&mapping[gap]>i)
              {
                  result.push_back(i + 1);
                  result.push_back(mapping[gap] + 1);
                  break;
              }
          }

          return result;
      }
View Code

 

leetcode 之Sum系列(七)

标签:

原文地址:http://www.cnblogs.com/573177885qq/p/5492568.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!