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;
  }
};

HDU-1003-Max Sum(dp经典问题-最大连续子序列和)

Max Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total ...

多线程经典问题-----乘客做公交车问题解答2

问题描述: 乘客乘坐公交车问题,司机,乘客,售票员协同工作,通过多线程模拟三者的工作。 司机:开车,停车 售票员:打开车门,关闭车门 乘客:上车,下车 解答: 通过使用CEvent 事件类...

2-sum问题

2-sum问题问题描述输入一个整数数组和一个整数,在数组中查找一对数,满足他们的和正好是输入的那个整数。分析求解暴力求解法——从数组中任意选两个数,判定他们的和是否等于输入的那个数。时间复杂度O(n^...

PAT 01-复杂度2. Maximum Subsequence Sum (25)&&PAT 01-复杂度1. 最大子列和问题(20)

/* 01-复杂度2. Maximum Subsequence Sum (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 S...

解决2sum问题

1、题目给定一个数组和目标值,求数组中所有相加结果等于目标值的数字组合2、思路首先对数组元素排序,如果希望结果中的解没有重复的,则去除数组中重复的元素,设置两个指针从数组的两端向中间遍历,如果相加结果...

程序员面试问题2:矩阵区域和 Programming Interview Questions 2: Matrix Region Sum

This is a very elegant question which seems easy at first but requires some hard thinking to solve i...

3sum-hard问题的综述

  • 2013年05月09日 15:47
  • 73KB
  • 下载

apt_cyg提示MD5 sum的问题修改文件

  • 2017年10月25日 10:16
  • 10KB
  • 下载

LeetCode-two sum:python解答数组问题

问题描述:给定一个数组和整型数字,找出数组中两个数加和为该整数的两个数的下标...

oj.leetcode 2sum 解

  • 2014年10月07日 08:21
  • 626B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:2sum问题经典解答
举报原因:
原因补充:

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