2sum问题经典解答

原创 2016年08月29日 09:44:50
bool compare(pair<int, int> lh, pair<int, int> rh)
{
  return lh.first < rh.first;
}

class Solution {
public:
  vector<int> twoSum(vector<int> &numbers, int target)
  {
    vector<pair<int, int> > num;
    int index = 1;
    for(vector<int>::iterator iter = numbers.begin();
                            iter != numbers.end(); ++iter, ++index) {
      num.push_back(make_pair(*iter, index));
    }
    sort(num.begin(), num.end(), compare);
    int i = 0, j = num.size() - 1;
    vector<int> res;
    for(; i < j;) {
      if(num[i].first + num[j].first == target) {
        res.push_back(num[i].second);
        res.push_back(num[j].second);
        ++i;
      }
      else if(num[i].first + num[j].first < target) {
        ++i;
      }
      else {
        --j;
      }
    }
    return res;
  }
};

Two Sum问题及解法

问题描述: Given an array of integers, return indices of the two numbers such that they add up to a sp...
  • u011809767
  • u011809767
  • 2017-02-13 17:28:39
  • 224

【算法】2SUM/3SUM/4SUM问题

之前就总结过一些Leetcode上各种sum问题,今天再拿出来完整得总结一番。 nSUM问题是指,在一个数组中,找出n个数相加和等于给定的数,这个叫做nSUM问题。 常见的有2SUM,3...
  • haolexiao
  • haolexiao
  • 2017-04-26 01:21:50
  • 4671

lintcode 两数之和(Two Sum )(Java)

题目 给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。 你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 1 到...
  • C_calary
  • C_calary
  • 2017-07-13 14:16:29
  • 1521

ThreeSum问题求解

问题描述:一个包含n个元素的数组,在其中选出3个元素 a,b,c 能否使得三个元素之和等于0. 问题扩展: 1.当三个元素可以重复时,例如 int a={-1,-3,-1,2},此时可以选择 -1...
  • a940902940902
  • a940902940902
  • 2018-02-26 11:33:02
  • 93

求和问题总结(leetcode 2Sum, 3Sum, 4Sum, K Sum)

转载自: http://tech-wonderland.net/blog/summary-of-ksum-problems.html 前言: 做过leetcode的人都知道, 里面有2sum...
  • nanjunxiao
  • nanjunxiao
  • 2013-10-09 20:51:31
  • 11453

求和问题总结(leetcode 2Sum, 3Sum, 4Sum, K Sum)

前言: 做过leetcode的人都知道, 里面有2sum, 3sum(closest), 4sum等问题, 这些也是面试里面经典的问题, 考察是否能够合理利用排序这个性质, 一步一步得到高效的算法....
  • doc_sgl
  • doc_sgl
  • 2013-10-09 00:15:19
  • 18688

[leetcode] 求和问题总结(2Sum, 3Sum, 4Sum, K Sum)

前言: 做过leetcode的人都知道, 里面有2sum, 3sum(closest), 4sum等问题, 这些也是面试里面经典的问题, 考察是否能够合理利用排序这个性质, 一步一步得到高效的算法....
  • bhwolf1987
  • bhwolf1987
  • 2013-11-03 14:07:03
  • 9812

剖析3-sum问题(Three sum)

日常生活中经常遇到求解数组中是否存在和为0的三个数,即3-sum问题,为此本文介绍一些比较实用的方法,并在暴力计算的基础上对算法逐步改进,以达到最优的算法。 首先介绍一下2-sum问题,3-su...
  • shaya118
  • shaya118
  • 2014-11-03 23:38:33
  • 2913

三、算法分析(three-sum算法)

算法分析计时类设计public class Stopwatch { private final long start; public Stopwatch() { sta...
  • guanhang89
  • guanhang89
  • 2016-03-01 20:42:19
  • 1587

2sum问题和3sum问题

算法 这个书,190页介绍了 这两个问题 。2sum的意思是 在一组数中,找到 两个数的和为零。有多少个这样的组合。 3sum是 找 有多少三个数的组合 ,他们的和为零。常规的for循环,问题的规模...
  • u012063703
  • u012063703
  • 2016-02-21 15:53:58
  • 436
收藏助手
不良信息举报
您举报文章:2sum问题经典解答
举报原因:
原因补充:

(最多只允许输入30个字)