• Leetcode刷题详解——四数之和


    1. 题目链接:四数之和

    2. 题目描述:

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

    • 0 <= a, b, c, d < n
    • abcd 互不相同
    • nums[a] + nums[b] + nums[c] + nums[d] == target

    你可以按 任意顺序 返回答案 。

    示例 1:

    输入:nums = [1,0,-1,0,-2,2], target = 0
    输出:[[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]]
    
    • 1
    • 2

    示例 2:

    输入:nums = [2,2,2,2,2], target = 8
    输出:[[2,2,2,2]]
    
    • 1
    • 2

    提示:

    • 1 <= nums.length <= 200
    • -109 <= nums[i] <= 109
    • -109 <= target <= 109

    3. 解法(排序+双指针)

    3.1 解法思路:

    1. 依次固定一个数a
    2. 在这个数a的后面区间上,利用三数之和找到三个数,使这三个数的和等于target-a即可
    3. 依次固定一个数b
    4. 在b后面的区间内,利用双指针找到两个数,使这两个数的和等于target-a-b即可
    5. 保证不重复不漏

    请添加图片描述

    3.1 C++算法代码:

    class Solution
    {
    public:
        vector> fourSum(vector&nums,int target)
        {
            vector> ret;
            //1.排序
            sort(nums.begin(),nums.end());
            //2.利用双指针解决问题
            int n=nums.size();
            for(int i=0;iaim)
                        right--;
                        else
                        {
                            ret.push_back({nums[i],nums[j],nums[left++],nums[right--]});
                            //去重1
                            while(left
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
  • 相关阅读:
    ELTEK电源维修SMPS5000SIL整流器模块故障分析及特点
    【JavaEE初阶】多线程 _ 基础篇 _ 单例模式
    从0开始学c语言-32-自定义类型:结构体,枚举,联合
    Linux_基本常用命令
    手机网络卡顿,试试飞行模式
    【maven】maven下载配置及idea集成使用
    pytorch深度学习实战lesson28
    温故知新(十)——UART
    PMP考试如何备考?只需3个步骤
    目标检测算法改进系列之Backbone替换为RIFormer
  • 原文地址:https://blog.csdn.net/weixin_51799303/article/details/133831219