侧边栏壁纸
博主头像
Hope博主等级

努力赚钱的工科研究生

  • 累计撰写 362 篇文章
  • 累计创建 129 个标签
  • 累计收到 5 条评论
标签搜索

LeetCode 18. 四数之和

Hope
2022-03-29 / 0 评论 / 0 点赞 / 288 阅读 / 613 字
温馨提示:
本文最后更新于 2022-03-29,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

LeetCode 18. 四数之和

思路:

思路和三数之和一样。

代码:

class Solution {
public:
    vector<vector<int>> fourSum(vector<int>& nums, int target) {
        int n = nums.size();
        sort(nums.begin(),nums.end());
        vector<vector<int>> res;

        for(int i = 0; i < n; i++){
            if(i && nums[i] == nums[i - 1]) continue;
            for(int j = i + 1; j < n; j++){
                if(j > i+ 1 && nums[j] == nums[j - 1]) continue;

                for(int u = j + 1,k = n - 1; u < k; u++){
                    if(u > j+1 && nums [u] == nums[u-1]) continue;
                    while(u < k - 1 && nums[i] + nums[j] >= target - nums[u] - nums[k - 1]) k--;
                    if(nums[i] + nums[j] == target - nums[u] - nums[k]){
                        res.push_back({nums[i], nums[j], nums[u], nums[k]});
                    }
                }
            }
        }
        return res;
    }
};
0

评论区