leetcode --18. 4Sum

来源:互联网 发布:知乎 撩妹技巧 编辑:程序博客网 时间:2024/06/05 12:02

题目:https://leetcode.com/problems/4sum/description/

代码:

class Solution {public:    vector<vector<int>> fourSum(vector<int>& nums, int target) {        vector<vector<int> > res;        if(nums.size()==0) return res;        sort(nums.begin(),nums.end());        for(int i = 0;i<nums.size();i++){            int sum1 = target - nums[i];            for(int j = i+1;j<nums.size();j++){                int sum2 = sum1 - nums[j];                int start = j+1,end = nums.size()-1;                while(start < end){                    if(nums[start]+nums[end]<sum2){                        start++;                    }else if(nums[start]+nums[end]>sum2){                        end --;                    }else{                        vector<int> temp = {nums[i],nums[j],nums[start],nums[end]};                        res.push_back(temp);                        while(start<end&&nums[start]==temp[2]) start++;                        while(start<end&&nums[end]==temp[3]) end--;                                            }                }                 while(j+1<nums.size()&&nums[j+1]==nums[j]) j++;            }            while(i+1<nums.size()&&nums[i+1]==nums[i]) i++;        }        return res;    }};

原创粉丝点击