LeetCode 4 sum 解法

华为Atlas 300I推理卡驱动安装避坑指南:不同安装方式的选择与优化 本文详细解析华为Atlas 300I推理卡驱动安装的三种主流方式(.run、.rpm和源码编译),提供关键环境检查步骤、安装流程优化建议及常见问题解决方案,帮助开发者高效完成芯片推理卡部署并规避典型安装陷阱。 阅读详情

题目连接:https://leetcode-cn.com/problems/4sum/

解题思路
此处撰写解题思路
第一层循环 从0-->n-3
去掉重复
if(i>0 && nums[i]==nums[i-1])continue;
如果当前元素和后三个元素之和大于target直接break
if(nums[i]+nums[i+1]+nums[i+2]+nums[i+3] > target) break;
如果当前元素和倒数三个元素之和小于target就继续
if(nums[i]+nums[n-3]+nums[n-2]+nums[n-1]< target) continue;
第二层循环
从i+1->n-2
去掉重复
if(j>i+1&& nums[j]==nums[j-1]) continue;
第一层循环的值加上当前循环的值 后两位之和大于target 就break
if(nums[i]+nums[j]+nums[j+1]+nums[j+2]>target) break;
第一层循环的值加上当前循环的值 倒数两位的和小于target 就continue
if(nums[i]+nums[j]+nums[n-2]+nums[n-1]<target) continue;

这样就固定住第一个和第二个值 那么久从j+1 和 n-1两端夹逼
如果四个值相加的和等于target 那么就放入vector中 去重操作和LR前后夹逼
如果和大于target那么就是L++
反之则R--
最后返回vector

代码
class Solution {
public:
    vector<vector<int>> fourSum(vector<int>& nums, int target) {
        vector<vector<int>> res;
        int n = nums.size();
        if(n < 4) return res;
         sort(nums.begin(),nums.end());
        for(int i =0; i<n-3;i++){
            if(i>0 && nums[i]==nums[i-1])continue;
            if(nums[i]+nums[i+1]+nums[i+2]+nums[i+3] > target) break;
            if(nums[i]+nums[n-3]+nums[n-2]+nums[n-1]< target) continue;
            for(int j=i+1;j<n-2;j++){
                if(j>i+1&& nums[j]==nums[j-1]) continue;
                if(nums[i]+nums[j]+nums[j+1]+nums[j+2]>target) break;
                if(nums[i]+nums[j]+nums[n-2]+nums[n-1]<target) continue;

                int L = j+1;
                int R = n-1;
                while(L<R){
                    int sum=nums[i]+nums[j]+nums[L]+nums[R];
                    if(sum<target) L++;
                    else if(sum>target) R--;
                    else{
                        res.push_back({nums[i],nums[j],nums[L],nums[R]});
                        // do{L++;}while(nums[L]==nums[L-1]&&L<R);
                        // do{R--;}while(nums[R]==nums[R+1]&&L<R);
                         while(L<R &&nums[L] == nums[L+1]) L++;
                         while(L<R &&nums[R] == nums[R-1]) R--;
                        L++;
                        R--;
                    }
                }
            }
        }

        return res;
    }
};

作者:mao1992
链接:https://leetcode-cn.com/problems/4sum/solution/c-16ms-by-mao1992/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

图像去雨:超详细手把手写 pytorch 实现代码(带注释) 占个坑,过几天来写 阅读详情

相关推荐

银河麒麟V10系统下VLC播放器安装全攻略(附3.0.9.2版本离线包下载)

本文详细介绍了在银河麒麟V10操作系统无网络环境下,从零开始编译安装VLC 3.0.9.2播放器的完整攻略。通过构建本地YUM仓库解决依赖问题,提供离线资源包下载,并逐步指导完成编译环境配置、软件编译与安装,帮助用户在国产麒麟系统上成功部署强大的多媒体播放能力。

a2b3c4d5e的博客 1206

Leetcode_4讲解

Leetcode_4 问题描述 给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的中位数。 示例一: 输入:nums1 = [1,3], nums2 = [2] 输出:2.00000 解释:合并数组 = [1,2,3] ,中位数 2 示例二: 输入:nums1 = [1,2], nums2 = [3,4] 输出:2.50000 解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5 示例三: 输入:nums1

qq_45759562的博客 1993

双翌视觉系统配合机械手大视野定位案例(单目标带角度抓取)

一、定位原理概述 1.系统构架 视觉定位系统采用正向打光方式,光源在机械手上方,CCD从上往下拍摄,进行图像分析定位。相机将计算出的像素坐标转换为机械手的物理坐标,视觉软件与机械手进行网口通讯,将视野内物料的物理坐标发送给机械手,机械手抓取物料放在指定工位。 2.相机标定概述 系统采用宫格标定确定像素坐标和物理坐标一一对应关系,同时利用3点或者多点旋转标定求出旋转中心 系统采用宫格标定,自定义行列数和间距及旋转角度,通过机械手发送的当...

weixin_51554164的博客 2172

leetcode4

617.给你两棵二叉树: root1 和 root2 。 想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;否则,不为 null 的节点将直接作为新二叉树的节点。 返回合并后的二叉树。 注意: 合并过程必须从两个树的根节点开始。 示例 1: 输入:root1 = [1,3,2,5], root2 = [2,1,3,null,4,null,7.

m0_61429496的博客 456

FOFA奇技淫巧:从搜索语法到实战场景的深度挖掘

本文深入探讨了FOFA搜索语法在网络空间测绘中的高效应用,从基础语法到实战场景的深度挖掘。通过渗透测试、威胁狩猎、资产发现等实际案例,展示了如何利用FOFA精准定位目标系统、识别蜜罐、追踪威胁,并提供了合规使用指南和性能优化技巧,助力安全工作者提升效率。

weixin_32428571的博客 237

YOLOv8改进策略【独家融合改进】| StarNet + 小目标检测头,加强跨尺度的上下文特征融合,提高小目标检测能力

P3/8 - small检测头原始模型中的P3/8特征层对应的检测头主要用于检测相对较小的目标。其特征图大小相对较大,空间分辨率较高。适合检测尺寸大概在8x8到32x32像素左右的目标。P4/16 - medium检测头这个检测头对应的P4/16特征层经过了更多的下采样操作,相比P3/8特征图空间分辨率降低,但通道数增加,特征更抽象且有语义信息。它主要用于检测中等大小的目标,尺寸范围大概在32x32到64x64像素左右。P5/32 - large检测头P5/32。

Limiiiing的博客 635

小白学习笔记:LeetCode(4)-二分查找

使用python3刷 leetcode-二分查找相关习题

Mr_wjjianyan的博客 545

Windows 11 安装 OpenClaw(龙虾):不用WSL、不用虚拟机、启动、使用、停止、卸载

本文详解 Windows 11 原生安装 OpenClaw(龙虾)全流程,无需 WSL 或虚拟机。涵盖环境配置、安全警示、模型接入(如通义千问)及技能初始化。提供启动、文件自动化操作、停止与卸载的完整指南,并附常见认证过期解决方案。助您快速部署本地 AI 智能体,实现电脑操作自动化,提升工作效率。

寒水馨 · 轻量级技术文档 · hanshuixin.org 900

【算法】4Sum 四数之和

给你一个由 n 个整数组成的数组 nums ,和一个目标值 target。和之前的3sum问题几乎一样,只不过这里的数字多了一个,同时数据的范围最大只有200。如果借鉴3sum的思路来解决,也是先排序,然后固定ab,然后双指针找cd,整体的。但是以问题的最大数据规模,这个时间复杂度还是会有TLE的风险。从时间复杂度的角度,已经不会有其他的策略可以优于这个思路。也就是说4层循环的暴力是一定TLE的,时间复杂度。但是对于某些特殊的情况下,还是可以进行加速。和3sum一样的优化思路,

Cui's Blog 455

【linux】linux 出现一个网卡绑定多个ip怎么处理

我的原因是我使用了dhcp,这个会自动分配ip, 将 BOOTPROTO 参数由 dhcp 改为 static,并移除或注释掉与动态分配地址 10.0.2.15 相关的配置行(如果存在)。执行后,您可以再次使用 ip -4 a 或 ifconfig 命令确认 IP 地址已被移除。输出可以看出,您的虚拟机(k8s003)中存在一个名为 enp0s3 的网卡绑定了多个 IPv4 地址。对于某些 Linux 发行版(如 Ubuntu、Debian),您可能需要编辑网络接口的配置文件来移除多余的 IP 地址。

九师兄 297

YOLOv8改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进

1️⃣本专栏已更新150多种不同的改进方法,所使用并改进的每一个模块均包含详细的模块分析、原理讲解、个人总结、多种改进方式以及完整的修改流程,所有改进100%可直接运行。2️⃣所有改进点均为近三年顶会,顶刊提出的先进算法,将其融入到中,紧跟学术热点,适应不同的任务场景。3️⃣团队内发表数篇SCI论文,熟悉完整的发表流程,订阅专栏即可进群享受模型训练、模型改进、论文写作、投稿选刊,从入门到论文的各种答疑内容。4️⃣专栏内容会持续更新,最近更新时间:2024-12-24。项目介绍在大家购买专栏后,加入学

Limiiiing的博客 1万+

leetcode4-两个有序数组的中位数

两个有序数组的中位数

chandelierds的博客 268

深入理解 ABAP 中的 Fast Data Access:从 @itab 到 FOR ALL ENTRIES 的性能关键路径

ABAP性能优化的关键在于理解Fast Data Access(FDA)机制,它连接了应用服务器的内表与数据库运算。FDA允许将内表数据推送到数据库进行筛选、聚合等操作,是SELECT...FROM@itab语法的基础。开发者需注意:1)该语法可能在内置引擎或数据库执行;2)仅当SQL能力超出ABAP范围时才建议使用;3)需通过CL_ABAP_DBFEATURES检查数据库支持情况。合理使用FDA可优化批量数据处理,但滥用可能导致性能下降。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1270

Leetcode之4sum 解法

类似3sum问题,在外面增加一个循环。 注意重复的问题。 class Solution { public: vector&lt;vector&lt;int&gt;&gt; fourSum(vector&lt;int&gt; &amp;nums, int target) { vector&lt;vector&lt;int&gt;&gt; ans; if...

OOC_ZC的博客 639

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

LeetCode 18:四数之和(4Sum)解法汇总

文章目录My Solution 更多LeetCode题解 My Solution 在3Sum的基础上加一层循环 class Solution { public: vector<vector<int>> fourSum(vector<int>& nums, int target) { if (nums.size() < 4) { return ...

Utopiabuntu的博客 278

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Leetcode 15. 3Sum 18. 4Sum 通用解法for N Sum Python

15.3Sum Given an arraynumsofnintegers, are there elementsa,b,cinnumssuch thata+b+c= 0? Find all unique triplets in the array which gives the sum of zero. Note: The solution set mus...

chelseajcole的专栏 278

LeetCode15 三数之和 3Sum & 18 四数之和 4Sum 解法总结

LeetCode15 3Sum 解法总结题目解题暴力遍历固定一个数 + 两数之和哈希解法排序 + 双指针 题目 要点: 可能包含多组解 解答不能重复,比如:[-1, 0, 1] 和 [0, -1, 1] 视为重复解 3Sum 解题 暴力遍历 没有思路的时候,可以先使用暴力遍历的方法解题,然后再思考怎么优化。平时做项目的时候也是如此,没有好思路的时候,至少先找到一个可行方案,有了备选方案后,再继续思考更优的解法。 使用暴力遍历的话,逻辑上是很简单的。 再有一个是不能有重复解,采用的方法:每次找到一组解,

202

leetcode 018 四数之和 4sum python 多种解法

所有Leetcode题目不定期汇总在 Github, 欢迎大家批评指正,讨论交流。 ''' Given an array nums of n integers and an integer target, are there elements a, b, c, and d in nums such that a + b + c + d = target? Find all unique qu...

Jasmine_dream 286

K sum

这里有一个介绍的比较系统的Ksum文章 http://tech-wonderland.net/blog/summary-of-ksum-problems.html 前言: 做过leetcode的人都知道, 里面有2sum, 3sum(closest), 4sum等问题, 这些也是面试里面经典的问题, 考察是否能够合理利用排序这个性质, 一步一步得到高效的算法. 经过总结,

salutlu的专栏 7383

LeetCode 18: 4 Sum 寻找4数和

今天的文章来聊聊向量时钟,在前文介绍分布式系统一致性的时候,曾经介绍过,在弱一致性模型当中会有一个因果性的问题。向量时钟算法正是设计出来解决因果关系问题的。 我们来回顾一下因果问题,在实际日常的网页行为当中,部分行为存在因果关系。比方说知乎里面回答问题,显然得先有一个同学提出问题,然后才能有各路大V谢邀解答问题。但是由于是分布式系统,有可能问题和回答并不是存放在同一台机器,导致有可能它们更新的顺...

TechFlow的博客 250

[leetcode] 求和问题总结(2Sum, 3Sum, 4Sum, K Sum)

前言: 做过leetcode的人都知道, 里面有2sum, 3sum(closest), 4sum等问题, 这些也是面试里面经典的问题, 考察是否能够合理利用排序这个性质, 一步一步得到高效的算法. 经过总结, 本人觉得这些问题都可以使用一个通用的K sum求和问题加以概括消化, 这里我们先直接给出K Sum的问题描述和算法(递归解法), 然后将这个一般性的方法套用到具体的K, 比如leet

┅☆心随风飞 1万+

求和问题总结(leetcode 2Sum, 3Sum, 4Sum, K Sum)

烟客旅人 sigmainfy — http://tech-wonderland.net/blog/summary-of-ksum-problems.html 前言: 做过leetcode的人都知道, 里面有2sum, 3sum(closest), 4sum等问题, 这些也是面试里面经典的问题, 考察是否能够合理利用排序这个性质, 一步一步得到高效的算法. 经过总结, 本人觉

yang_chen_shi_wo的博客 2372

LeetCode Notes_#18 4Sum

LeetCode Notes_#18 4SumLeetCode Contents 题目思路和解答思路解答 题目 Given an array nums of n integers and an integer target, are there elements a, b, c, and d in nums such that a + b + c + d = targe...

baji9701的博客 505

2sum,3sum,4sum问题总结

K Sum Problem Series:  (中文旧版)前言: 做过leetcode的人都知道, 里面有2sum, 3sum(closest), 4sum等问题, 这些也是面试里面经典的问题, 考察是否能够合理利用排序这个性质, 一步一步得到高效的算法. 经过总结, 本人觉得这些问题都可以使用一个通用的K sum求和问题加以概括消化, 这里我们先直接给出K Sum的问题描述和算法

2> /dev/null 1175

LeetCode 18 4sum Python 高效解法

class Solution: def fourSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[List[int]] """ def findNsum(nums, target,...

飞翔的北极熊 389

LeetCode 18. 4Sum

LeetCode 18. 4SumDescriptionExampleNoteCodeConclusion Description Given an array nums of n integers and an integer target, are there elements a, b, c, and d in nums such that a + b + c + d = target? F...

gq__97的博客 404

4sum问题用python_LeetCode 18 4sum Python 高效解法

class Solution:def fourSum(self, nums, target):""":type nums: List[int]:type target: int:rtype: List[List[int]]"""def findNsum(nums, target, N, result, results):if len(nums) < N or N < 2 or targ...

weixin_39876739的博客 127
上一篇: 基于Runloop 来实现手动保持线程生命周期
下一篇: RN 热更新提示 index.js文件找不到
Coding_Physical
博客等级 码龄12年 160粉丝 210原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值