【OJ刷题】双指针问题6
✨ 个人主页:在线OJ的阿川
💖文章专栏:OJ刷题入门到进阶
🌏代码仓库:
写在开头
现在您看到的是我的结论或想法,但在这背后凝结了大量的思考、经验和讨论


目录
- 1. 题目介绍
- 2. 题目拆解
- 3. 具体详情
- 4. 具体代码
1. 题目介绍
难度:中
题目练习:四数之和
题目信息:给你一个由 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
你可以按 任意顺序 返回答案 。
举个例子: 具体如图1所示
图1 举个例子
2. 题目拆解
本质上:观察规律,双指针遍历判断
特点是:在组合搭配中有一定规律
解决方法:双指针算法,如图2所示
图2 双指针
3. 具体详情
1. 先进行排序
2. 依次固定一个数并确保固定时,若是重复固定值时跳过
3. 在固定数后面的区间内利用"三数之和"找到三个数,然后再固定一个数,在固定的这个数后面的区间内,利用"双指针"找到两个数,使这两个数的和等于目标值减去两个固定值并遍历完整个数组,并确保当双指针和固定值是重复值时跳过
4. 最后返回数组
4. 具体代码
class Solution {
public:vector<vector<int>> fourSum(vector<int>& nums, long long target){// 进行排序sort(nums.begin(), nums.end());vector<vector<int>> cur;int n = nums.size();// 第1层固定值for(int i = 0; i < n; ){// 第2层固定值for(int j = i + 1; j < n; ){int left = j + 1, right = n - 1;long long aim = target - nums[i] - nums[j];// 双指针算法具体实现while(left < right){int sum = nums[left] + nums[right];// 三种情况if(sum > aim) right--;else if(sum < aim) left++;else{cur.push_back({nums[i], nums[j], nums[left++], nums[right--]});// 去重while(left < right && nums[left] == nums[left - 1]) left++;while(left < right && nums[right] == nums[right + 1]) right--;}}j++;// 第2层固定值去重while(j < n && nums[j] == nums[j - 1]) j++;}i++;// 第1层固定值去重while(i < n && nums[i] == nums[i - 1]) i++;}return cur;}
};
5. 夹带私货
若你能看到看到这篇文章且能看到这,则说明你我有缘,留个关注吧,后面还会接着计算机408、底层原理、开源项目、以及数据、后端研发相关、实习、笔试/面试、秋招/春招、各种竞赛相关、简历相关、考研、学术相关……,祝你我变得更强
好的,到此为止啦,祝您变得更强


| 道阻且长 行则将至 |
|---|
个人主页:在线OJ的阿川 大佬的支持和鼓励,将是我成长路上最大的动力 ![]() |
相关文章:
【OJ刷题】双指针问题6
这里是阿川的博客,祝您变得更强 ✨ 个人主页:在线OJ的阿川 💖文章专栏:OJ刷题入门到进阶 🌏代码仓库: 写在开头 现在您看到的是我的结论或想法,但在这背后凝结了大量的思考、经验和讨论 目录 1…...
详解:Tensorflow、Pytorch、Keras(搭建自己的深度学习网络)
这是一个专门对Tensorflow、Pytorch、Keras三个主流DL框架的一个详解和对比分析 一、何为深度学习框架? 你可以理解为一个工具帮你构建一个深度学习网络,调用里面的各种方法就能自行构建任意层,diy你想要的DNN,而且任意指定学习…...
【CSS in Depth 2 精译_035】5.5 Grid 网格布局中的子网格布局(全新内容)
当前内容所在位置(可进入专栏查看其他译好的章节内容) 第一章 层叠、优先级与继承(已完结) 1.1 层叠1.2 继承1.3 特殊值1.4 简写属性1.5 CSS 渐进式增强技术1.6 本章小结 第二章 相对单位(已完结) 2.1 相对…...
Java是怎么处理死锁的
文章目录 避免死锁避免嵌套锁资源进行排序超时锁 检测死锁通过Java提供的API检查死锁情况jStack监控工具 Java 本身没有内置的机制自动处理死锁问题,但可以采取一些策略和技术来检测和避免死锁。 避免死锁 避免嵌套锁 尽可能减少嵌套锁操作,避免在一个…...
Effective Java 学习笔记 方法签名设计
目录 谨慎选择方法名称 不要过于追求提供便利的快捷方法 避免过长的参数列表 对于参数类型优先使用接口而不是类 对于boolean参数,要优先使用两个元素的枚举类型 本文接续前一篇文章聚焦Java方法签名的设计,方法签名包括了方法的输入和输出参数以及…...
毛利超70%、超70+智驾客户,这家AI数据训练服务商刚刚止亏
AI训练数据服务第一股海天瑞声终于迎来了“曙光”。 日前,海天瑞声发布2024年半年报显示,上半年其实现营收9242.63万,同比增长24.13%;实现净利润41.64 万元,不过同比去年同期的亏损1724.14万元,扭亏为盈。…...
本地部署高颜值某抑云音乐播放器Splayer并实现无公网IP远程听歌
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
图像压缩编码(4)--H.26x系列视频压缩编码_2
目录 H.261 视频编码标准 H.261的编码与解码 1) 帧内/帧间编码 2)运动补偿 3)量化 4)环路滤波器 5)缓存器 压缩数据的分层 数据复用结构 H.264的编码与解码 H.261 视频编码标准 实际应用时,要求有…...
JS渲染锻炼输入表单
前言 上篇文章为大家展现了好看的信息窗口,接下来我们跟着流程图看下一步 之前我们的带点击事件已经添加完毕,下一步就是当用户点击的时候,渲染锻炼形式,当然这是一个标签,可以提供给用户输入锻炼形式 实例 ● 我…...
proteus仿真学习(1)
一,创建工程 一般选择默认模式,不配置pcb文件 可以选用芯片型号也可以不选 不选则从零开始布局,没有初始最小系统。选用则有初始最小系统以及基础的main函数 本次学习使用从零开始,不配置固件 二,上手软件 1.在元件…...
决策树+随机森林模型实现足球大小球让球预测软件
文章目录 前言一、决策树是什么?二、数据收集与整理1.数据收集2.数据清洗3.特征选择 三、决策树构建3.1绘制训练数据图像3.2 训练决策树模型3.3 依据模型绘制决策树的决策边界3.4 树模型可视化 四、模型预测五、随机森林模型总结 前言 之前搞足球数据分析的时候&…...
31省市农业地图大数据
1.北京市 谷类作物种植结构(万亩) 农作物种植结构(万亩) 2.天津市 谷类作物种植结构(万亩) 农作物种植结构(万亩) 3.黑龙江省 谷类作物种植结构(万亩) 农作物…...
http请求包含什么
HTTP请求通常包含以下几个主要部分: 请求行(Request Line): 包含请求方法(如 GET、POST、PUT、DELETE 等)、请求的目标 URI 和 HTTP 版本。例如:GET /index.html HTTP/1.1 请求头部(…...
【基础算法总结】模拟篇
目录 一,算法介绍二,算法原理和代码实现1576.替换所有的问号495.提莫攻击6.Z字形变换38.外观数列1419.数青蛙 三,算法总结 一,算法介绍 模拟算法本质就是"依葫芦画瓢",就是在题目中已经告诉了我们该如何操作…...
《深度学习》PyTorch 手写数字识别 案例解析及实现 <下>
目录 一、回顾神经网络框架 1、单层神经网络 2、多层神经网络 二、手写数字识别 1、续接上节课代码,如下所示 2、建立神经网络模型 输出结果: 3、设置训练集 4、设置测试集 5、创建损失函数、优化器 参数解析: 1)para…...
【笔记】材料分析测试:晶体学
晶体与晶体结构Crystal and Crystal Structure 1.晶体主要特征 固态物质可以分为晶态和非晶态两大类,分别称为晶体和非晶体。 晶体和非晶体在微观结构上的区别在于是否具有长程有序。 晶体(长程有序)非晶(短程有序)…...
飞塔Fortigate7.4.4的DNS劫持功能
基础网络配置、上网策略、与Server的VIP配置(略)。 在FortiGate上配置DNS Translation,将DNS请求结果为202.103.12.2的DNS响应报文中的IP地址修改为Server的内网IP 10.10.2.100。 config firewall dnstranslationedit 1set src 2.13.12.2set…...
Unity 设计模式 之 行为型模式 -【状态模式】【观察者模式】【备忘录模式】
Unity 设计模式 之 行为型模式 -【状态模式】【观察者模式】【备忘录模式】 目录 Unity 设计模式 之 行为型模式 -【状态模式】【观察者模式】【备忘录模式】 一、简单介绍 二、状态模式(State Pattern) 1、什么时候使用状态模式 2、使用状态模式的…...
【RabbitMQ】RabbitMQ 的概念以及使用RabbitMQ编写生产者消费者代码
目录 1. RabbitMQ 核心概念 1.1生产者和消费者 1.2 Connection和Channel 1.3 Virtual host 1.4 Queue 1.5 Exchange 1.6 RabbitMO工作流程 2. AMQP 3.RabbitMO快速入门 3.1.引入依赖 3.2.编写生产者代码 3.3.编写消费者代码 4.源码 1. RabbitMQ 核心概念 在安装…...
openmv与stm32通信
控制小车视觉循迹使用 OpenMV 往往是不够的。一般使用 OpenMV 对图像进行处理,将处理过后的数据使用串口发送给STM32,使用STM32控制小车行驶。本文主要讲解 OpenMV 模块与 STM32 间的串口通信以及两种循迹方案,分别是划分检测区域和线性回归。…...
python 最基础的一些
获取数组长度 lengthlen(list)for 循环数组 for i in list:print (i)打出来的就是数组里的每一个数据。for 循环数组下标 for i in range(length):print(list[i])寻找某个数据在数组里的下标 indexnums[i1:].index(numNeed)i1因为是从i1开始找的,然后用index函数获取…...
Python实战:5分钟搞定Infoway期货行情API接入(附完整代码)
Python实战:5分钟搞定Infoway期货行情API接入(附完整代码) 最近两年量化交易的热度持续攀升,身边不少程序员朋友都在尝试将自己的编程技能转化为交易优势。作为Python开发者,我们最关心的莫过于如何快速获取可靠的实时…...
2025届学术党必备的六大降重复率平台实际效果
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 人工智能生成内容也就是AIGC普及之后,文本检测系统变得越来越精密了。为了避免机…...
物联网设备搜索终极指南:Shodan与Censys实战应用
物联网设备搜索终极指南:Shodan与Censys实战应用 在当今万物互联的时代,物联网设备搜索已经成为网络安全领域的关键技能。通过Shodan和Censys这两大专业工具,你可以轻松发现连接到互联网的各种设备,从智能摄像头到工业控制系统&a…...
S-UI前端工程化:ESLint与Prettier代码质量保障
S-UI前端工程化:ESLint与Prettier代码质量保障 还在为代码风格混乱、团队协作困难而头疼吗?S-UI作为专业的代理面板项目,通过完善的工程化配置确保了代码质量。本文将为你解析如何在类似项目中配置ESLint和Prettier,打造规范的开…...
hello-uniapp状态管理新选择:Pinia在UniApp中的实践指南
hello-uniapp状态管理新选择:Pinia在UniApp中的实践指南 【免费下载链接】hello-uniapp uni-app框架演示示例 项目地址: https://gitcode.com/gh_mirrors/he/hello-uniapp 在UniApp开发中,状态管理一直是开发者关注的重点。hello-uniapp作为uni-a…...
Emby高级功能完全解锁指南:emby-unlocked让媒体服务器焕发新生
Emby高级功能完全解锁指南:emby-unlocked让媒体服务器焕发新生 【免费下载链接】emby-unlocked Emby with the premium Emby Premiere features unlocked. 项目地址: https://gitcode.com/gh_mirrors/em/emby-unlocked 你是否厌倦了Emby Premiere的高级功能需…...
实测Qwen-Image-Edit-2511:输入一张图,输出360°环绕视角,效果太强了
实测Qwen-Image-Edit-2511:输入一张图,输出360环绕视角,效果太强了 1. 引言:单图变多视角的技术突破 想象一下,你只需要一张普通的商品照片,就能自动生成360度全方位的展示效果。这不是科幻电影里的场景&…...
社交媒体 SEO 优化应该注意哪些
社交媒体 SEO 优化的核心要点 在当今数字化时代,社交媒体已经成为品牌营销和用户互动的重要平台。单靠社交媒体上的粉丝数量不能保证品牌的成功。为了在众多用户中脱颖而出,社交媒体 SEO 优化显得尤为重要。社交媒体 SEO 优化应该注意哪些关键点呢&…...
OpenProject企业级项目管理平台部署架构与实践指南
OpenProject企业级项目管理平台部署架构与实践指南 【免费下载链接】openproject OpenProject is the leading open source project management software. 项目地址: https://gitcode.com/GitHub_Trending/op/openproject OpenProject作为领先的开源项目管理软件&#x…...


