首页 > 其他 > 详细

leetcode 之Sum系列(七)

时间:2016-05-14 15:32:35      阅读:225      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!