[hot100]三数之和
三数之和附上卡尔大神的讲解梦破碎的地方| LeetCode15.三数之和_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1GW4y127qo/?spm_id_from333.1391.0.0vd_source9eb6e4de48672f76da98b479d4a96f25题目的大概意思就是从一个数组里面找到三个数值加起来为0的三个数 然后题目要求三元组之间不能重复 但是组内是可以重复的eg[-1,-1,2]就是满足条件的三元组 [2,1,-3]也是 但是不能出现两个[-1,-1,2] 三元组内部的数字可以重复题目要求返回一个二维数组 也就是一个满足条件的三元组数组这里题目没有要求返回索引 这里就要想到可以排序来提高我们的信息熵 增加信息这道题其实细节方面是有点复杂的 难点在于如何确定三个数的信息 上面说排序提高信息 就是让这个数组能够按照一定的顺序排列来提高信息 这里我们要找到abc0的abc三元组 意味着需要三个变量 这个时候我们就需要联想到双指针加上一个变量 不过经验和想法这东西都还是根据刷题经验以及长期积累来的 所以这题是有一定难度的 这个不太好想 就是三个变量 刚好就是双指针加上一个循环变量所以abc就可以拆解成 固定a 让bc-a 这里的a就是每一步循环遍历循环的i然后b和c就是两头的双指针所以思路就是遍历nums数组 让a固定 然后b指向i下一个 c指向末尾然后根据三者之间的和来收缩指针 这里为什么能够根据三者之和来收缩指针呢 因为我们的这个数组是带有信息的 也就是排序过的 这也就是为什么我们上面要先把数组排列然后再遍历根据sum来判断两个指针如何来移动 如果sum0 这个时候说明数小了 就把左边的指针往右移动 让它数值大一些如果sum0 说明数大了 就把右边的指针往左移动 让它数值小一些如果0 这个时候说明当前的i b c 就是我们想要寻找的三元组 我们就可以把它add进list 然后同时收缩两个指针 但是我们这个时候需要注意的是题目要求我们不能有重复的三元组 所以需要去重 这个时候我们就要去重 要对 i b c都要去重对i用nums[i]nums[i-1]来判断是否重复注意这里为什么不能是nums[i]nums[i1]因为left指针就是i1 也就是i前面一位如果用这个来判断的话就是来判断一个数组里面是否有重复的了eg这个情况下 i 和left指向的就是相等的 但是这个是符合条件的 因为nums[i]nums[i1]这个本质就是用i和left指向的来做比较 但是i和left是可以进行比较的所以只能用nums[i]nums[i-1]同理用nums[left]nums[left-1]和nums[right]nums[right1]来进行去重 这里的right就是要去和右边的比了 因为左边 也就是right-1可能是left 但是left可以等于right还可以对代码进行一个剪枝 也就是当i指向的元素都大于0的情况下 可以直接返回list数组了 因为left和right指向的都大于i指向的 这个时候后续移动三者不可能三者相加等于0 所以可以直接返回 这里根据排序之后和位置关系得出的条件是nums[i]nums[left]nums[right]if nums[i]0nums[i]nums[left]nums[right] !0所以直接返回之前找到的三元组即可但是这里一定要注意的是返回不能写成 new Arraylist 因为这个返回的是一个空数组 没有返回到有数组的listimport java.util.*; public class Main { public static void main(String[] args) { Scanner input new Scanner(System.in); String s input.nextLine(); String[] split s.split( ); int [] arrnew int[split.length]; for (int i 0; i split.length; i) { arr[i]Integer.parseInt(split[i]); } ListListInteger lists threeSum(arr); for (int i 0; i lists.size(); i) { System.out.println(lists.get(i)); } } public static ListListInteger threeSum(int[] nums) { //先对nums进行排序 Arrays.sort(nums); //然后在开始循环遍历nums ArrayListListInteger list new ArrayList(); for (int i 0; i nums.length; i) { //剪枝 如果到了i这里数值开始大于0了 后面的left和right肯定也是大于0的 这三者后面的和肯定不会为0 //所以可以直接返回 if(nums[i] 0){ return list; } //对i进行去重 if(i0nums[i]nums[i-1]){ continue; } //定义两个指针 放在后续数组的两段 int lefti1; int rightnums.length-1; while(leftright){ int sumnums[i]nums[left]nums[right]; if(sum0){ list.add(Arrays.asList(nums[i],nums[left],nums[right])); //移动双指针 left; right--; //对两个指针进行去重 while(leftrightnums[left]nums[left-1]){ left; } while(leftrightnums[right]nums[right1]){ right--; } }else if(sum0){ right--; }else{ left; } } } return list; } }如果有什么问题可以评论区一起讨论一下 如果觉得写的还可以点个赞鼓励一下谢谢

相关新闻

vllm与sgLang

vllm与sgLang

一、基本概念先看kvcache概念:可以看作模型的短期记忆,模型每生成一个新词就疯狂吃gpu显存1、对于vLLM框架有PagedAttention:按需分配、非连续存储的方式PagedAttention:把每个请求的 KV Cache 切割成固定大小的“块(Block&#x…

2026/7/2 4:03:43阅读更多 →
2026年AI建站平台怎么选?企业官网、SEO和GEO能力对比

2026年AI建站平台怎么选?企业官网、SEO和GEO能力对比

2026年AI建站平台怎么选?企业官网、SEO和GEO能力对比AI建站平台怎么选,不能只看“能不能一键生成页面”。对企业官网来说,AI只是起点,后面还要看模板结构、内容编辑、TDK、sitemap、结构化标记、OG标签、表单询盘、多语言和后续维…

2026/7/2 4:03:43阅读更多 →
GPT-4.5 下线后,旧对话、提示词和工作流该怎么整理?

GPT-4.5 下线后,旧对话、提示词和工作流该怎么整理?

前言 很多人使用 ChatGPT 久了以后,都会形成自己的固定对话和工作流。 比如: 用一个长期对话写 CSDN 文章; 用固定提示词做代码审查; 用自定义 GPT 整理周报; 用旧对话保存品牌语气、文章结构和禁用表达&#xff1b…

2026/7/2 3:58:43阅读更多 →
2026年求职者必看 8 个简历润色网站实测 应届生或转行人群首选

2026年求职者必看 8 个简历润色网站实测 应届生或转行人群首选

摘要 应届生缺职场经历、转行人群缺岗位匹配经验,是简历润色需求最强烈的两类群体。针对“经历不会包装、岗位匹配不准、筛选系统通不过、求职预算有限”四大核心痛点,本文实测8款主流简历润色网站(AI简历姬、WPS AI简历助手、Canva可画、Tea…

2026/7/2 5:18:51阅读更多 →
项目管理以及日常任务记录工具

项目管理以及日常任务记录工具

内容待补充,我先写好模板,是为了再应用里面进行内置,等我内置好了慢慢更新

2026/7/2 5:18:51阅读更多 →
构建高效漏洞速查字典:一句话版本通报的设计与实战

构建高效漏洞速查字典:一句话版本通报的设计与实战

1. 项目概述:为什么我们需要“一句话版本”的漏洞通报在网络安全领域,信息传递的速度和准确性往往与防御的有效性直接挂钩。想象一下,凌晨三点,你作为安全团队的负责人,被一个紧急电话叫醒,被告知一个影响核…

2026/7/2 5:18:51阅读更多 →
PatentGPT 精读:面向知识产权领域的大语言模型,是如何被训练出来的?

PatentGPT 精读:面向知识产权领域的大语言模型,是如何被训练出来的?

摘要 这篇文章精读论文 PatentGPT: A Large Language Model for Intellectual Property。这篇论文不是提出一个全新的 Transformer 架构,而是提出了一套面向知识产权领域的领域大模型训练流程:以 LLaMA2 / Mixtral 等开源模型为底座,通过大规…

2026/7/2 5:18:51阅读更多 →
最近的很多次对外交流,都聊到了ERP建设的话题,并且无一例外的不那么让人省心,回想我这么多年走过的ERP坑坑路,在这里也写下经验和总结,希望能给正在或者即将走上ERP建设路的企业一些思考和帮助。

最近的很多次对外交流,都聊到了ERP建设的话题,并且无一例外的不那么让人省心,回想我这么多年走过的ERP坑坑路,在这里也写下经验和总结,希望能给正在或者即将走上ERP建设路的企业一些思考和帮助。

导读1、几个瞎眼而普遍的案例2、ERP的前世今生2.01、典型的舶来品2.02、产业的迭代3、中国特色的ERP建设3.01、人治与法治3.02、畸形的销售3.03、悲惨的SaaS4、成功的密钥在哪里4.01、找准公司的定位4.02、尊重科学,相信方法4.03、强有力的CTO4.04、中国特色的玩法4…

2026/7/2 5:18:51阅读更多 →
【电赛/毕设天花板】别再调包 SimpleFOC 了!STM32 纯手写 FOC 矢量控制:空间变换、SVPWM 与相电流采样硬核指南

【电赛/毕设天花板】别再调包 SimpleFOC 了!STM32 纯手写 FOC 矢量控制:空间变换、SVPWM 与相电流采样硬核指南

前言 无论是能后空翻的机械狗(如宇树科技)、极度丝滑的大疆云台,还是特斯拉的驱动电机,它们底层的核心技术全都是同一个词——FOC(Field Oriented Control,磁场定向控制)。 在电赛和毕设中&…

2026/7/2 5:13:51阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/7/1 4:42:14阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/7/1 5:19:01阅读更多 →
塞尔达传说旷野之息存档修改器:3分钟掌握海拉鲁世界自由定制技巧

塞尔达传说旷野之息存档修改器:3分钟掌握海拉鲁世界自由定制技巧

塞尔达传说旷野之息存档修改器:3分钟掌握海拉鲁世界自由定制技巧 【免费下载链接】BOTW-Save-Editor-GUI A Work in Progress Save Editor for BOTW 项目地址: https://gitcode.com/gh_mirrors/bo/BOTW-Save-Editor-GUI 想在《塞尔达传说:旷野之息…

2026/7/2 0:03:01阅读更多 →
告别 AccessKey:多云平台 CLI OAuth 免密认证完全指南

告别 AccessKey:多云平台 CLI OAuth 免密认证完全指南

在本地开发环境使用云厂商 CLI 时,传统的 AccessKey(AK)方式需要手动创建、下载和保管密钥,不仅繁琐,还存在泄漏风险。其实,主流云平台都已提供基于 OAuth 2.0 的免密认证方案,让开发者可以通过浏览器登录一次性完成授权,CLI 自动管理临时凭证的刷新,兼顾了便利与安全…

2026/7/2 0:03:01阅读更多 →
基于13DOF传感器与PIC32MZ的高精度嵌入式导航系统设计

基于13DOF传感器与PIC32MZ的高精度嵌入式导航系统设计

1. 项目背景与核心价值在嵌入式系统开发领域,高精度定位与导航一直是极具挑战性的技术方向。传统方案往往面临成本、精度和实时性难以兼顾的困境。这个项目通过13DOF(13自由度)传感器组合与PIC32MZ2048EFH100高性能MCU的协同工作,…

2026/7/2 0:03:01阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/2 0:33:58阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/2 1:32:11阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/2 1:50:13阅读更多 →