当前位置: 首页 > news >正文

【优选算法】四数之和

题⽬描述:
给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复):

0 <= a, b, c, d < n
a、b、c 和 d 互不相同
nums[a] + nums[b] + nums[c] + nums[d] == target
你可以按 任意顺序 返回答案 。
在这里插入图片描述
算法思路:
a. 依次固定⼀个数a;
b. 在这个数a的后⾯区间上,利⽤「三数之和」找到三个数,使这三个数的和等于target- a 即可。

class Solution {
public:
    vector<vector<int>> fourSum(vector<int>& nums, int target) {
        sort(nums.begin(),nums.end());
        vector<vector<int>> ret;
        int n=nums.size();
        for(int i=0;i<n;)
        {
            for(int j=i+1;j<n;)
            {
                int left=j+1,right=n-1;
                long long target2=(long long)target-nums[j]-nums[i];
                while(left<right)
                {
                    if(nums[left]+nums[right]<target2) left++;
                    else if(nums[left]+nums[right]>target2) right--;
                    else{
                        ret.push_back({nums[i],nums[j],nums[left],nums[right]});
                        left++,right--;
                        while(left<right&&nums[left]==nums[left-1]) left++;
                        while(left<right&&nums[right]==nums[right+1]) right--;
                    }
                }
                j++;
                while(j<n&&nums[j]==nums[j-1]) j++;
            }
            i++;
            while(i<n&&nums[i]==nums[i-1]) i++;
        }
        return ret;
    }
};

相关文章:

  • Python - 代码片段分享 - Excel 数据实时写入方法
  • 力扣LeetCode:1656 设计有序流
  • Python生成器250224
  • 代码随想录Day46 | 647.回文子串,516.最长回文子序列
  • CI/CD的定义
  • Docker 部署 Jenkins持续集成(CI)工具
  • 20250224-代码笔记02-class CVRPTrainer
  • 谈谈 ES 6.8 到 7.10 的功能变迁(3)- 查询方法篇
  • 开源神器KRR:用数据驱动K8s资源优化
  • 【C】堆的应用1 -- 堆排序
  • ubuntu安装配置docker
  • 《数据库索引设计与优化》译本错误纠正(1)
  • C++类和对象(中)
  • Ocelot 请求聚合
  • 【JavaScript】什么是JavaScript?以及常见的概念
  • jupyterhub on k8s 配置用户名密码 简单版
  • C++ day4 练习
  • SQL: DDL,DML,DCL,DTL,TCL,
  • 2.24力扣每日一题--设计有序流
  • 【Microsoft® PowerPoint for Mac】MAC一键导出PPT备注
  • 闽赣两省受强对流天气影响停运多条铁路
  • 引入AI Mode聊天机器人,Gemini 2.5 Pro加持,谷歌重塑搜索智能
  • 夜读丨为萤火虫哭泣的夜晚
  • 高温最强时段来了!北方局地高温有明显极端性
  • 《缶翁的世界》首发:看吴昌硕等湖州籍书画家的影响
  • 推开“房间”的门:一部“生命存在的舞台” 史