3-sum leetcode经典解答

原创 2016年08月29日 11:15:48
  class Solution {
 public:
     vector<vector<int> > threeSum(vector<int> &num) {
         int n = num.size();
         sort(num.begin(), num.end());
         vector<vector<int> > res;
         for(int i = 0; i < n-2; i++)
         {
             if(i > 0 && num[i] == num[i-1])continue;//重复的元素不用计算
             int target2 = 0 - num[i];
             twoSum(num, i+1, target2, res);
         }
         return res;
     }
     void twoSum(vector<int> &sortedNum, int start, int target, vector<vector<int> >&res)
     {
         int head = start, tail = sortedNum.size() - 1;
         while(head < tail)
         {
             int tmp = sortedNum[head] + sortedNum[tail];
             if(tmp < target)
                 head++;
             else if(tmp > target)
                 tail--;
             else
             { ;
                 res.push_back(vector<int>{sortedNum[start-1], sortedNum[head], sortedNum[tail]});
                 
                 //为了防止出现重复的二元组,使结果等于target
                 int k = head+1;
                 while(k < tail && sortedNum[k] == sortedNum[head])k++;
                 head = k;
                 
                 k = tail-1;
                 while(k > head && sortedNum[k] == sortedNum[tail])k--;
                 tail = k;
             }
         }
     }
 };

LeetCode 1. Two Sum 解题报告

题意: 数组nums中,有两个元素的和是target,找出这两个元素的位置。 思路: 维护一个map,用数组的元素的值做key,用元素的位置做value。遍历nums,对每个num来说,...
  • liwenxin_at
  • liwenxin_at
  • 2015年12月28日 19:48
  • 1345

LeetCode || Minimum Path Sum

Minimum Path Sum  Total Accepted: 19916 Total Submissions: 63796My Submissions Question  Solution ...
  • jiadebin890724
  • jiadebin890724
  • 2014年10月19日 11:40
  • 4293

LeetCode解题报告--3 Sum

题目: 3 个数和问题 Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0...
  • github_27609763
  • github_27609763
  • 2015年08月16日 16:37
  • 1012

Leetcode 经典题目题解

所列均为个人解答 所用语言Java 尽量都用最优解解答 原题出自Leetcode:https://leetcode.com/problemset/algorithms/ 仅供参考...
  • jwyyuana
  • jwyyuana
  • 2015年12月16日 05:46
  • 3018

leetcode题目整理

374. Guess Number Higher or Lower 31.70% Easy 373. Find K Pairs with Smallest Sums 25.50% ...
  • aishangyutian12
  • aishangyutian12
  • 2016年08月07日 23:38
  • 443

leetCode练习(18)

题目:Submission Details 难度:medium 问题描述: Given an array S of n integers, are there elements a, b,...
  • u010771890
  • u010771890
  • 2016年09月15日 09:51
  • 154

Leetcode题目解答汇总

Leetcode题目解答汇总   断断续续的在leetcode上刷了一些题,每次遇到一时解决不了的都跳过了,以至于没有完整的熟悉每个题。因此汇总在此,实时更新,方便继续刷题以及后期回顾。 1、00...
  • yefengzhichen
  • yefengzhichen
  • 2016年06月18日 19:08
  • 291

【算法】LeetCode上一些经典好题(update@0617)

LeetCode从15年末也就是大四的时候开始陆陆续续的刷了150多道题,今年因为马上要找工作了,所以又开始刷起来,觉得有必要记录一下做一些题目时的想法,和记录下一些好的题目和discuss里好的方法...
  • haolexiao
  • haolexiao
  • 2016年12月06日 15:26
  • 1045

[leetcode] 375. Guess Number Higher or Lower II 解题报告

题目链接: https://leetcode.com/problems/guess-number-higher-or-lower-ii/ We are playing the Guess G...
  • qq508618087
  • qq508618087
  • 2016年07月22日 08:03
  • 2636

leetcode(1)_Two Sum

2017/7/2
  • DuinoDu
  • DuinoDu
  • 2017年07月02日 16:46
  • 240
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:3-sum leetcode经典解答
举报原因:
原因补充:

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