18. 4Sum

原创 2016年08月29日 23:21:59

枚举第一个数和最后一个数,中间两个数二分查找,也可以用set集合去重

class Solution {
public:
    vector<vector<int>> fourSum(vector<int>& nums, int target) {
        int n=nums.size();
        int i,j,k,t;
        sort(nums.begin(),nums.end());
        
        vector<vector<int>> res;
        for(i=0;i<=n-4;i++)
        {
            if(i>0&&nums[i]==nums[i-1])
                continue;
            for(t=n-1;t>=i+3;t--)
            {
                if(t<n-1&&nums[t]==nums[t+1])
                    continue;
                for(j=i+1,k=t-1;j<k;)
                {
                    if(j>i+1&&nums[j]==nums[j-1])
                    {
                        j++;
                        continue;
                    }
                    if(k<t-1&&nums[k]==nums[k+1])
                    {
                        k--;
                        continue;
                    }
                    int d=nums[i]+nums[t]+nums[j]+nums[k];
                    if(d==target)
                    {
                        vector<int> vt;
                        vt.push_back(nums[i]);
                        vt.push_back(nums[j]);
                        vt.push_back(nums[k]);
                        vt.push_back(nums[t]);
                        res.push_back(vt);
                        j++;
                        k--;
                    }
                    else if(d>target)
                        k--;
                    else
                        j++;
                }
            }
        }
        return res;
    }
};


18. 4Sum (超时)

 题目:4Sum Given an array S of n integers, are there elements a, b, c, and d in S such that a + ...
  • qingqingni1990
  • qingqingni1990
  • 2016年11月05日 10:21
  • 101

Leetcode 454. 4Sum II 四数之和2 解题报告

1 解题思想首先,这是一道远古之前的题的进化版: Leetcode #18 4Sum 四数之和 解题小节+K-Sum思想 但是我不想说那个题了,因为我也记不住了。。这道题意思就是ABCD四个数组,长...
  • MebiuW
  • MebiuW
  • 2016年11月16日 22:45
  • 2787

LeetCode 18. 4Sum(四数之和)

原题网址:https://leetcode.com/problems/4sum/ Given an array S of n integers, are there elements a, ...
  • jmspan
  • jmspan
  • 2016年05月19日 06:31
  • 302

Leetcode刷题记——18. 4Sum(4个数字和)

一、题目叙述: Given an array S of n integers, are there elements a, b, c, and d...
  • sunshine0_0
  • sunshine0_0
  • 2016年11月15日 20:01
  • 121

LeetCodet题解--18. 4Sum(4个数的和)

====#链接 LeetCode题目:https://leetcode.com/problems/4sum GitHub代码:https://github.com/gatieme/Lee...
  • gatieme
  • gatieme
  • 2016年04月07日 21:09
  • 1410

leetcode解题之 18. 4Sum Java版(结果是目标值的四个数字和)

leetcode解题之 18. 4Sum Java版(结果是目标值的四个数字和)
  • mine_song
  • mine_song
  • 2017年04月06日 18:43
  • 198

【LeetCode-面试算法经典-Java实现】【018-4Sum(四个数的和)】

【018-4Sum(四个数的和)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Given an array S of n integers, are there ele...
  • DERRANTCM
  • DERRANTCM
  • 2015年07月22日 07:22
  • 2426

LeetCode之4Sum(经典)

题目: Given an array S of n integers, are there elements a,b,c, and d in S such that a+b+c+d = target...
  • z702143700
  • z702143700
  • 2015年06月07日 17:06
  • 670

[LeetCode] 4Sum 四数之和解法(本算法n数之和都能解)

[LeetCode] 4Sum 四数之和解法(本算法3数求和能解, n数之和都能解)
  • lm2009200
  • lm2009200
  • 2017年07月27日 13:09
  • 185

双向链表及其用法

一、双向链表的定义 二、双向链表的存储结构 三、双向链表的实现与操作
  • fk5431
  • fk5431
  • 2015年04月17日 00:39
  • 3760
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:18. 4Sum
举报原因:
原因补充:

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