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

18. 四数之和

18. 四数之和

  • 原题链接:
  • 完成情况:
  • 解题思路:
  • 参考代码:
  • 错误经验吸取

原题链接:

18. 四数之和
https://leetcode.cn/problems/4sum/description/

完成情况:

在这里插入图片描述

解题思路:

/**
* //HashMap只能记录key,value的结果
* //而不能记录产生这个结果的过程
*
* @param nums
* @param target
* @return
*/

思路全在代码注释里

参考代码:

package LeetCode算法题;import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;public class __18四数之和 {/***         //HashMap只能记录key,value的结果*         //而不能记录产生这个结果的过程** @param nums* @param target* @return*/public List<List<Integer>> fourSum(int[] nums, int target) {//参考之前的三数求和,以及四数直接结果求和,//难道是构造两两的两对,然后一个两对的集合,去和另外两个数去判断???List<List<Integer>> res = new ArrayList<List<Integer>>();int len = nums.length;if (nums == null || len < 4){return res;}Arrays.sort(nums);  //初始先将所有元素排好序,这样可以避免混乱的找要求数字for (int i=0;i<len-3;i++){if (i>0 && nums[i] == nums[i-1]){   //从第二个数开始判断continue;       //并且去重}//取完重复之后,固定一个点,剩下指针指向三个节点//然后进行左右判断if ((long)nums[i] + nums[i + 3] + nums[i + 2] + nums[i+1] > target){break;      //如果最左边四个数还比target大,那么说明已经没有数满足target了。}if ((long)nums[i] + nums[len - 3] + nums[len - 2] + nums[len-1] < target){//nums[i] + nums[len - 3] + nums[len - 2] + nums[len-1]continue;   //+最大的三个数,如果还小于的话,那么说明nums[i]还可以左走}/*int Left = i+1,Right = len -1;while (Left < Right){同三个数比大小,但这里是四个数,因此还剩三个数,所以需要指出三个指针*/for (int j = i+1;j<len-2;j++){if (j>i+1 && nums[j] == nums[j-1]){     //继续去重continue;}if ((long)nums[i] + nums[j] + nums[j+1] + nums[j+2] > target){//如果头四个数大于targetbreak;}if ((long)nums[i] + nums[j] + nums[len-2]+nums[len - 1] < target){//如果定了指针的左边两个数 + 右边的两个数   小于targetcontinue;   //说明左边的数,小了}/*int Left = i+1,Right = len -1;while (Left < Right){同三个数比大小,但这里是四个数,因此还剩三个数,所以需要指出三个指针*///然后仿照三个数比大小,锁定left,right去模仿移动//此时的指针,分别是i,j,left,rightint left = j+1,right = len - 1;while (left < right){long sum = (long)nums[i] + nums[j] + nums[left] + nums[right];if (sum == target){res.add(Arrays.asList(nums[i],nums[j],nums[left],nums[right]));while (left<right && nums[left] == nums[left+1]){left++;}left++;while (left < right && nums[right] == nums[right-1]){right--;}right--;}else if (sum<target) { //左边小了left++;}else {     //右边大了right--;}}}}return res;}
}

错误经验吸取

相关文章:

18. 四数之和

18. 四数之和 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;参考代码&#xff1a;错误经验吸取 原题链接&#xff1a; 18. 四数之和 https://leetcode.cn/problems/4sum/description/ 完成情况&#xff1a; 解题思路&#xff1a; /** * //HashMap只能记录…...

排序:堆排序(未完待续)

文章目录 排序一、 排序的概念1.排序&#xff1a;2.稳定性&#xff1a;3.内部排序&#xff1a;4.外部排序&#xff1a; 二、插入排序1.直接插入排序 二、插入排序堆排序 排序 一、 排序的概念 1.排序&#xff1a; 一组数据按递增/递减排序 2.稳定性&#xff1a; 待排序的序列…...

小米智能电视投屏方法

小米智能电视也提供了投屏功能。 使用遥控器&#xff0c;在应用中找到它&#xff0c;点击进入。 小米电视支持windows笔记本&#xff0c;macbook笔记本&#xff0c;iphone手机&#xff0c;安卓手机投屏。 windows笔记本投屏 在投屏应用中找到windows投屏&#xff0c;选中开…...

保外就医罪犯收到指定医院《罪犯病情诊断书》及检测、检查报告等其他医疗文书后,应当在规定时限内提交( ),或者受委托司法所审查。

需要查看详细试题题库及其参考答案的&#xff0c;请到&#xff08;题-海-舟&#xff09;里进行搜索查看。可搜试题题干或者搜索关键词&#xff0c;搜题的时候&#xff0c;先进行题目识别&#xff0c;能大大提高学习效率&#xff0c;感谢使用&#xff01; 保外就医罪犯收到指定…...

pytorh模型训练、测试

目录 1 导入数据集 2 使用tensorboard展示经过各个层的图片数据 3 完整的模型训练测试流程 使用Gpu训练的两种方式 使用tensorboard显示模型 模型训练测试 L1Loss函数 保存未训练模型或者已经训练完的模型 4 加载训练好的模型进行测试 1 导入数据集 import torch from torch.u…...

MySQL 8.0 Clone Plugin 详解

文章目录 前言1. 克隆插件安装2. 克隆插件的使用2.1 本地克隆2.2 远程克隆 3. 克隆任务监控4. 克隆插件实现4.1 Init 阶段4.2 File Copy4.3 Page Copy4.4 Redo Copy4.5 Done 5. 克隆插件的限制6. 克隆插件与 Xtrabackup 的异同7. 克隆插件相关参数 后记 前言 克隆插件&#xf…...

掌握未来技术趋势:深度学习与量子计算的融合

掌握未来技术趋势&#xff1a;深度学习与量子计算的融合 摘要&#xff1a;本博客将探讨深度学习与量子计算融合的未来趋势&#xff0c;分析这两大技术领域结合带来的潜力和挑战。通过具体案例和技术细节&#xff0c;我们将一睹这两大技术在人工智能、药物研发和金融科技等领域…...

京东数据分析:2023年9月京东笔记本电脑行业品牌销售排行榜

鲸参谋监测的京东平台9月份笔记本电脑市场销售数据已出炉&#xff01; 9月份&#xff0c;笔记本电脑市场整体销售下滑。鲸参谋数据显示&#xff0c;今年9月份&#xff0c;京东平台上笔记本电脑的销量将近59万&#xff0c;环比下滑约21%&#xff0c;同比下滑约40%&#xff1b;销…...

3 任务3 使用趋动云部署自己的stable-diffusion

使用趋动云部署自己的stable-diffusion 1 创建项目&#xff1a;2 初始化开发环境实例3 部署模型4 模型测试 1 创建项目&#xff1a; 1.进入趋动云用户工作台&#xff0c;选择&#xff1a;当前空间&#xff0c;请确保当前所在空间是注册时系统自动生成的空间。 a.非系统自动生成…...

C语言 memset

C语言memset函数详解_C 语言_脚本之家 (jb51.net) 注意是按照字节赋值的。int型变量&#xff0c;当赋值0时&#xff0c;是没有问题的&#xff0c;但是赋值1&#xff0c;却按照每个字节都赋值1&#xff0c;最终结果错误。 怎么解决呢&#xff1f; 不能使用memset么&#xff1…...

Windows安装svn命令

1、svn命令下载地址 https://www.visualsvn.com/downloads/; 2、安装svn命令 3、测试svn命令是否安装成功...

vr航天探索科普展vr航天科普亲子嘉年华

随着生活水平的提高&#xff0c;人们的体验事物也在变多&#xff0c;学习方面也越来越多元化。现在我国的航天技术也在快速的发展&#xff0c;在宇宙太空中有我们的一席之位。航天大发展离不开每个航天人的努力。现在很多的人从娃娃做起&#xff0c;让他们更早的体验和了解外太…...

双11“万亿交易额”背后,浪潮信息助力银行扛住交易洪流

双十一&#xff0c;不仅是网络购物的狂欢&#xff0c;更是中国支付清算业务的大考。 举目望去&#xff0c;双十一的台前幕后可谓是“不一样的精彩”。一方面台前的主角是消费者&#xff0c;全球超200个国家和地区的人们捧着手机、电脑&#xff0c;在阿里、京东、抖音、拼多多等…...

geoserver发布同一字段的多值渲染

Geoserver之同一字段的多值渲染 有时候我们需要对一个shp的某一字段值中的不同值进行区分展示&#xff0c;但是一般的渲染都是按照统一图层展示的&#xff0c;因此为了更好的效果&#xff0c;我们选择使用uDig等工具处理。 文章目录 Geoserver之同一字段的多值渲染前言一共是分…...

软考 系统架构设计师之考试感悟

今天是2023年11月4号&#xff0c;是软考系统架构设计师考试的正日子。考了一天&#xff0c;身心俱疲&#xff0c;但更多的是暮鼓晨钟般的教训和感悟。下边将今天的感悟写在这里&#xff0c;以资自己及后来者借鉴。 我是从今年7月底8月初开始看教材 ——《系统架构设计师教程》…...

深入Spring Cloud LoadBalancer:策略全解析与缓存机制

目录 1. 什么是 LoadBalancer &#xff1f; 2. 负载均衡策略的分类 2.1 常见的负载均衡策略 3. 为什么要学习 Spring Cloud Balancer &#xff1f; 4. Spring Cloud LoadBalancer 内置的两种负载均衡策略 4.1 轮询负载均衡策略&#xff08;默认的&#xff09; 4.2 随机负…...

MySQL的高阶语句

前言 数据库是用来存储数据&#xff0c;更新&#xff0c;查询数据的工具&#xff0c;而查询数据是一个数据库最为核心的功能&#xff0c;数据库是用来承载信息&#xff0c;而信息是用来分析和查看的。所以掌握更为精细化的查询方式是很有必要的。本文将围绕数据的高级查询语句展…...

适合汽车音频系统的ADAU1977WBCPZ、ADAU1978WBCPZ、ADAU1979WBCPZ四通道 ADC,24-bit,音频

一、ADAU1977WBCPZ 集成诊断功能的四通道ADC&#xff0c;音频 24 b 192k IC&#xff0c;SPI 40LFCSP ADAU1977集成4个高性能模数转换器(ADC)&#xff0c;其直接耦合输入具有10 V rms性能。该ADC采用多位Σ-Δ架构&#xff0c;其连续时间前端能够实现低EMI性能。它可以直接连接…...

设计模式-状态模式 golang实现

一 什么是有限状态机 有限状态机&#xff0c;英⽂翻译是 Finite State Machine&#xff0c;缩写为 FSM&#xff0c;简称为状态机。 状态机不是指一台实际机器&#xff0c;而是指一个数学模型。说白了&#xff0c;一般就是指一张状态转换图。 已订单交易为例&#xff1a; 1.…...

通过docker快速部署RabbitMq

查询镜像&#xff1a; docker search rabbitmq拉去RabbitMq镜像&#xff1a; docker pull rabbitmq:management创建数据卷&#xff1a; docker volume create rabbitmq-home运行容器&#xff1a; docker run -id --namerabbitmq -v rabbitmq-home:/var/lib/rabbitmq -p 156…...

浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)

✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义&#xff08;Task Definition&…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

Robots.txt 文件

什么是robots.txt&#xff1f; robots.txt 是一个位于网站根目录下的文本文件&#xff08;如&#xff1a;https://example.com/robots.txt&#xff09;&#xff0c;它用于指导网络爬虫&#xff08;如搜索引擎的蜘蛛程序&#xff09;如何抓取该网站的内容。这个文件遵循 Robots…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...

WebRTC从入门到实践 - 零基础教程

WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC&#xff1f; WebRTC&#xff08;Web Real-Time Communication&#xff09;是一个支持网页浏览器进行实时语音…...

Kafka主题运维全指南:从基础配置到故障处理

#作者&#xff1a;张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1&#xff1a;主题删除失败。常见错误2&#xff1a;__consumer_offsets占用太多的磁盘。 主题日常管理 …...