Leetcode 15. 三数之和

原创 2018年04月15日 11:09:46

注意有相同的数出现的情况,需要跳过

class Solution {
public:
    vector<vector<int>> threeSum(vector<int>& nums) {
        vector<int> tmp;
        vector<vector<int>> ans;
        sort(nums.begin(), nums.end());
        for (int i = 0; i + 2 < nums.size(); ++i) {
            if (i > 0 && nums[i] == nums[i - 1]) continue;//跳过
            int l = i + 1, r = nums.size() - 1, sum = -nums[i];//假定第一个元素
            while (l < r) {//找二元组,使第一个元素和二元组和为0
                while (l<r && nums[r] + nums[l] > sum) --r;
                if (l < r && nums[r] + nums[l] == sum) {//匹配的情况
                    tmp.clear();
                    tmp.push_back(nums[i]), tmp.push_back(nums[l]), tmp.push_back(nums[r]);
                    ans.push_back(tmp);
                }
                if (nums[l] == nums[r]) break;//跳过,注意要先加入答案集后再跳过
                while (l < r && nums[l] == nums[l + 1]) ++l;
                ++l;
            }
        }
        return ans;
    }
};
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Bendaai/article/details/79947556

leetcode15

国庆假期也玩也coding,再不写博客,之前没写注释的代码可能都忘了。。。 以后要开始写写注释。 LeetCode15-3Sum 这道题目出出来就知道暴力搜索肯定是超时的,虽然这样依然抱着侥幸心...
  • zhangxiao93
  • zhangxiao93
  • 2015-10-06 21:16:26
  • 940

LeetCode 15: 3 Sum

Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all u...
  • sunao2002002
  • sunao2002002
  • 2015-06-09 19:45:38
  • 2820

LeetCode --- 15. 3Sum

题目链接:3Sum Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? F...
  • makuiyu
  • makuiyu
  • 2015-01-29 19:38:27
  • 1929

leetcode-Java-15. 3Sum

思路: 先升序排序,然后用第一重for循环确定第一个数字。 然后在第二重循环里,第二、第三个数字分别从两端往中间扫。 如果三个数的sum等于0,得到一组解。 如果三个数的sum小于0,说明需要...
  • github_34514750
  • github_34514750
  • 2016-06-03 09:38:31
  • 534

【LeetCode】LeetCode——第15题:3Sum

【LeetCode】LeetCode——第15题:3Sum
  • hujingshuang
  • hujingshuang
  • 2016-04-29 20:47:14
  • 4371

LeetCode 15 - 3Sum

一、问题描述 Description:Description: Given an array S of n integers, are there elements a, b, c ...
  • lisong694767315
  • lisong694767315
  • 2015-05-19 20:03:13
  • 3707

LeetCode 15~16

LeetCode 15. 3Sum 题目: https://leetcode.com/problems/3sum/description/ 题意: 给定一个包含 n 个整数的数组 S,...
  • jsszwc
  • jsszwc
  • 2018-03-23 20:28:38
  • 20

leetcode 15. 三数之和

15. 三数之和 方法网上有很多,这里主要分析一下用set排重的问题。 先说知识点: 1.set采用等价比较,而不是等值(Effective STL)。就是说不用operator==,只用ope...
  • yxccc_914
  • yxccc_914
  • 2018-03-25 23:09:51
  • 19

leetcode第15题——**3Sum

题目 Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find al...
  • buptlrw
  • buptlrw
  • 2016-01-20 00:31:54
  • 879

[LeetCode]15.3Sum

【题目】 3Sum  Total Accepted: 6032 Total Submissions: 35898My Submissions Given an array S of...
  • SunnyYoona
  • SunnyYoona
  • 2014-01-18 11:08:15
  • 3340
收藏助手
不良信息举报
您举报文章:Leetcode 15. 三数之和
举报原因:
原因补充:

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