leetcode 18: 4Sum

来源:互联网 发布:淘宝还有延长收货吗 编辑:程序博客网 时间:2024/04/19 10:51
class Solution {public:    vector<vector<int>> fourSum(vector<int>& nums, int target) {        sort(nums.begin(),nums.end());        vector<int> set;        vector<vector<int> > res;        if(nums.size()<4)            return res;        int a,b,c,d;        a=0;        d=nums.size()-1;        for(a=0;a<nums.size()-3;a++)        {            if(a>0&&nums[a]==nums[a-1])                continue;            for(d=nums.size()-1;d>a+2;d--)            {                if(d<nums.size()-1&&nums[d]==nums[d+1])                    continue;                b=a+1;                c=d-1;                while(b<c)                {                    int sum=nums[a]+nums[b]+nums[c]+nums[d];                    if(sum<target)                    {                        b++;                        continue;                    }                    else if(sum>target)                    {                        c--;                        continue;                    }                    else                    {                        set.push_back(nums[a]);                        set.push_back(nums[b]);                        set.push_back(nums[c]);                        set.push_back(nums[d]);                        /*for(int i=0;i<3;i++)                            for(int j=i+1;j<4;j++)                                if(set[i]>set[j])                                {                                    int temp=set[i];                                    set[i]=set[j];                                    set[j]=temp;                                }*/                        res.push_back(set);                        set.clear();                        b++;                    }                    while(nums[b]==nums[b-1])                        b++;                }            }        }        return res;    }};

0 0
原创粉丝点击