今天每日一题是四数之和 哈哈 凑巧今天把三数之和也做了算了 刚做完四数之和在做三数之和是真的简单。。。
class Solution { public: vector<vector<int>> threeSum(vector<int>& nums) { vector<vector<int>> res; int n=nums.size(); if(n<3){ return res; } sort(nums.begin(),nums.end()); for(int i=0;i<n;++i){ if(i>0&&nums[i]==nums[i-1]){ continue; } if(i+2<n&&nums[i]+nums[i+1]+nums[i+2]>0){ break; } if(nums[i]+nums[n-1]+nums[n-2]<0){ continue; } int left=i+1,right=n-1; while(left<right){ int num=nums[i]+nums[left]+nums[right]; if(num<0){ left++; }else if(num>0){ right--; }else{ res.push_back({nums[i],nums[left],nums[right]}); while(left<right&&nums[left]==nums[left+1]){ left++; } left++; while(left<right&&nums[right]==nums[right-1]){ right--; } right--; } } } return res; } };