leetcode(15)-3sum

版权声明:本文为博主编写文章,未经博主允许转载,转载请注明出处: https://blog.csdn.net/qq_39742013/article/details/83043779
class Solution {
public:
    vector<vector<int>> threeSum(vector<int>& nums) {
        vector<vector<int>> result;
        sort(nums.begin(),nums.end());
        if(nums.size()<=2)
            return result;
        for(int i=0;i<nums.size()-2;i++)
        {
            int a=nums[i];
            if(i>0&&nums[i-1]==a)
                continue;
            if(a>0)
                break;
            for(int j=i+1,k=nums.size()-1;j<k;)
            {
                int b=nums[j];
                int c=nums[k];
                int sum=a+b+c;
                if(sum==0)
                {
                    vector<int> newVector=vector<int>();
                    newVector.push_back(a);
					newVector.push_back(b);
					newVector.push_back(c);
                    result.push_back(newVector);
                    while(j<k&&b==nums[++j]);
                    while(j<k&&c==nums[--k]);
                }
                else if(sum>0)
                {
                    k--;
                }
                else if(sum<0)
                {
                    j++;
                }
            }
        }
        return result;
    }
    
};

猜你喜欢

转载自blog.csdn.net/qq_39742013/article/details/83043779
今日推荐