18.四数之和

​​题目来源:

        leetcode题目,网址:18. 四数之和 - 力扣(LeetCode)

解题思路:

        排序+双指针。将数组排序后,枚举第一个元素和第二个元素,利用双指针寻找第三个元素和第四个元素。

解题代码:

class Solution {
public:
    vector> fourSum(vector& nums, int target) {
        vector> res;
        if(nums.size()<4){
            return res;
        }
        sort(nums.begin(),nums.end());
        long last2Sum=nums[nums.size()-1]+nums[nums.size()-2];
        long last3Sum=last2Sum+nums[nums.size()-3];
        if( last3Sum+nums[nums.size()-4]newTarget){
                    break;
                }else if(nums[i]+nums[j]+last2SumnewTarget){
                        right--;
                    }else{
                        vector vec={nums[i],nums[j],nums[left],nums[right]};
                        res.push_back(vec);
                        left++;
                        while(left

总结:

        注意四数之和可能超出 int 表示范围。

        官方题解也是排序+双指针。


你可能感兴趣的:(#,C++,LeetCode,C++)