美文网首页
2020-06-14-双指针

2020-06-14-双指针

作者: NO_OcaNE | 来源:发表于2020-06-14 15:51 被阅读0次

    Leetcode-15-三数之和

    给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。

    class Solution {
    public:
        vector<vector<int>> threeSum(vector<int>& nums)
        {
            vector<vector<int>> ans;
            sort(nums.begin(),nums.end());
            int len = nums.size();
            for(int first = 0; first < len; ++first)
            {
                if(first > 0 && nums[first] == nums[first-1])
                {
                    continue;
                }
                int third = len-1;
                int target = -nums[first];
                for(int second = first + 1; second < len; ++second)
                {
                    if(second > first+1 && nums[second] == nums[second -1])
                    {
                        continue;
                    }
                    while(second < third && nums[second] + nums[third] > target)
                    {
                        --third;
                    }
                    if(second == third) 
                    {
                        break;
                    }
                    if(nums[second] + nums[third] == target)
                    {
                        ans.push_back({nums[first], nums[second], nums[third]});
                    }
                }
    
            }
            return ans;
        }
    };
    

    相关文章

      网友评论

          本文标题:2020-06-14-双指针

          本文链接:https://www.haomeiwen.com/subject/kjnxxktx.html