leetcode 16 3Sum

Posted 去做点事情

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 16 3Sum相关的知识,希望对你有一定的参考价值。

 

 

class Solution {
public:
    vector<vector<int>> threeSum(vector<int>& nums) {
        vector<vector<int>> result;
        std::sort(nums.begin(),nums.end());
        for(int i = 0;i < nums.size();i++){
            int target = 0 - nums[i];
            int first = i+1;
            int end = nums.size() - 1;
            while(first < end){
                if(nums[first] + nums[end] == target){
                    vector<int> res;
                    int num1 = nums[first];
                    int num2 = nums[end];
                    res.push_back(nums[i]);
                    res.push_back(num1);
                    res.push_back(num2);
                    result.push_back(res);
                    while(first < end && nums[first] == num1)
                        first++;                    相同的数字过滤掉
                    while(first < end && nums[end] == num2)
                        end--;                     相同的数字过滤掉
                }
                else if(nums[first] + nums[end] < target)
                    first++;
                else
                    end--;
            }
            while (i + 1 < nums.size() && nums[i + 1] == nums[i]) 
                i++;                            相同的数字过滤掉
        }
        return result;
    }
};

 

以上是关于leetcode 16 3Sum的主要内容,如果未能解决你的问题,请参考以下文章

leetcode16 3Sum Closest

LeetCode(16):3Sum Closest

LeetCode - 16. 3Sum Closest

Leetcode 16. 3Sum Closest

Leetcode 16. 3Sum Closest

LeetCode16:3Sum Closest