news 2026/7/4 12:03:39

LeetCode 热题 100 —— 6.三数之和(Javascript解法)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode 热题 100 —— 6.三数之和(Javascript解法)

一、题目要求

给你一个整数数组nums,判断是否存在三元组[nums[i], nums[j], nums[k]]满足i != ji != kj != k,同时还满足nums[i] + nums[j] + nums[k] == 0。请你返回所有和为0且不重复的三元组。

注意:答案中不可以包含重复的三元组。

二、题目思路

解法:排序 + 双指针

1.先对数组排序,便于去重和双指针移动;

2.固定一个数 nums[i],然后在 i 右侧使用双指针寻找两数之和等于 -nums[i]

3.跳过重复元素,保证结果不重复

三、代码实现

/** * @param {number[]} nums * @return {number[][]} */ var threeSum = function(nums) { //边界控制(数组长度小于3直接返回空值) if(nums.length < 3) return[]; //排序(升序) nums.sort((a,b) => a-b); let result = []; const n = nums.length; for(let i = 0; i < n-2; i++){ // 优化:如果当前最小的数都大于 0,三数之和不可能为 0,直接终止循环 if (nums[i] > 0) break; // 跳过重复的 i,避免产生重复的三元组 if (i > 0 && nums[i] === nums[i - 1]) continue; let left = i + 1; let right = n - 1; while(left < right){ const sum = nums[i] + nums[left] + nums[right]; if(sum == 0){ // 找到一个合法三元组 result.push([nums[i], nums[left], nums[right]]); //跳过重复的三元组 while(left<right && nums[left] === nums[left+1]){ left++; } while(left <right && nums[right] === nums[right-1]){ right--; } // 继续向内收缩 left++; right--; }else if(sum < 0 ){ // 和太小,左指针右移增大和 left++; }else{ //和太大,右指针左移减小和 right--; } } } return result; };

四、总结

该算法时间复杂度为O(n²)。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/29 10:44:49

Android FOSS:一份持续更新的安卓开源应用清单

文章目录Android FOSS&#xff1a;一份持续更新的安卓开源应用清单Android FOSS&#xff1a;一份持续更新的安卓开源应用清单 offa/android-foss 这个项目在 GitHub 上积累了 10,414 个 Star。它做的事情很简单&#xff1a;整理一份安卓平台上的免费开源软件清单。 清单覆盖的…

作者头像 李华
网站建设 2026/6/29 1:45:53

沉浸式娱乐成主流,VR真人CS引领文旅升级新趋势

随着消费升级&#xff0c;大众的线下娱乐需求早已发生翻天覆地的变化。过去单一的观光、休闲式游玩模式&#xff0c;已经无法满足当代年轻人的消费需求。如今的消费者&#xff0c;不再满足于“走马观花”式的游玩&#xff0c;更追求沉浸式、互动性、有体验感、有社交属性的娱乐…

作者头像 李华
网站建设 2026/6/29 0:33:57

综合分析题不会答,粉笔适合帮新手建立作答层次吗

综合分析题是申论里最容易让新手“卡壳”的题型之一。 归纳概括题至少知道要找要点&#xff0c;提出对策题至少知道要写措施&#xff0c;但综合分析题一出现“谈谈你对某句话的理解”“请分析这一现象”“对此你怎么看”&#xff0c;很多考生就不知道从哪里下笔。材料读完了&am…

作者头像 李华
网站建设 2026/6/29 0:32:22

22个学术科研论文AI辅助写作工具

知网研学AI科研 提供选题分析、文献管理、论文写作、润色预审、科研工具等全流程服务&#xff0c;全面提升科研效率与学术创新能力。 https://xai.cnki.net/?refai.aixinyike.com 试用文房思宝 提供文献阅读、在线写作、课题申报、文献综述、实证分析、范文生成等多种服务 htt…

作者头像 李华