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

[leetcode hot 150]第十五题,三数之和

题目:

给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != ji != k 且 j != k ,同时还满足 nums[i] + nums[j] + nums[k] == 0 。请

你返回所有和为 0 且不重复的三元组。

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

首先需要对数组进行排序。这是因为需要找到所有和为 0 的三元组,而对数组进行排序可以帮助更容易地识别这些三元组。 

将使用三个指针 ij 和 k 来遍历数组。指针 i 从数组开头开始,指针 j 从数组第二个元素开始,指针 k 从数组末尾开始。

检查位于 ij 和 k 指针处的元素之和是否等于 0。如果等于 0,我们将把这个三元组添加到 result 列表中。

如果和小于 0,将把指针 j 向右移动以增大和。如果和大于 0,我们将把指针 k 向左移动以减小和。

为了避免重复,如果 nums[i]nums[j] 或 nums[k] 与前一个迭代中的元素相同,将跳过当前迭代。

 

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;public class no_15 {public static void main(String[] args) {int[] arr = {-1, 0, 1, 2, -1, -4};List<List<Integer>> lists = threeSum(arr);for (List<Integer> list : lists) {System.out.println(list.toString());}}public static List<List<Integer>> threeSum(int[] nums) {List<List<Integer>> re = new ArrayList<>();Arrays.sort(nums);for (int i = 0; i < nums.length - 2; i++) {if (i > 0 && nums[i] == nums[i - 1]) {continue;}int j = i + 1;int k = nums.length - 1;while (j < k) {int sum = nums[i] + nums[j] + nums[k];if (sum < 0) {j++;} else if (sum > 0) {k--;} else {re.add(Arrays.asList(nums[i], nums[j], nums[k]));while (j < k && nums[j] == nums[j + 1]) {j++;}while (j < k && nums[k] == nums[k - 1]) {k--;}j++;k--;}}}return re;}
}

相关文章:

[leetcode hot 150]第十五题,三数之和

题目&#xff1a; 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复…...

视频AI分析定时任务思路解析

序言&#xff1a; 最近项目中用到视频ai分析&#xff0c;由于sdk涉及保密&#xff0c;不便透露&#xff0c;仅对定时任务分析的思路作出分享&#xff0c;仅供参考。 1、定时任务 由于ai服务器的性能上限&#xff0c;只能同时对64个rtsp流分析一种算法&#xff0c;或者对8个rts…...

tcp 粘包和拆包 及 解决粘包方案

什么是粘包和拆包 .TCP 是面向连接的&#xff0c;面向流的&#xff0c;提供高可靠性服务。收发两端&#xff08;客户端和服务器端&#xff09;都要有一一成对的 socket&#xff0c;因此&#xff0c;发送端为了将多个发给接收端的包&#xff0c;更有效的发给对方&#xff0c;使…...

【2024泰迪杯】B 题:基于多模态特征融合的图像文本检索20页论文及Python代码

【2024泰迪杯】B 题&#xff1a;基于多模态特征融合的图像文本检索20页论文及Python代码 相关链接 【2024泰迪杯】A 题&#xff1a;生产线的故障自动识别与人员配置 Python代码实现 【2024泰迪杯】B 题&#xff1a;基于多模态特征融合的图像文本检索Python代码实现 【2024泰迪…...

华为设备telnet 远程访问配置实验简述

一、实验需求: 1、AR1模拟电脑telnet 访问AR2路由器。 二、实验步骤&#xff1a; 1、AR1和AR2接口配置IP&#xff0c;实现链路通信。 2、AR2配置AAA模式 配置用户及密码 配置用户访问级别 配置用户telnet 访问服务 AR2配置远程服务数量 配置用户远程访问模式为AAA 配置允许登录…...

在HTML中,如何正确使用语义化标签?

在HTML中&#xff0c;使用语义化标签可以使得网页结构更加清晰和易于理解。以下是一些正确使用语义化标签的方法&#xff1a; 使用合适的标题标签&#xff08;h1-h6&#xff09;来标识网页的标题&#xff0c;以及页面中的各个区块的标题。 <h1>网页标题</h1> <…...

WHAT - 高性能和内存安全的 Rust(一)

目录 一、介绍1.1 示例代码1.2 关键特性内存安全零成本抽象&#xff1a;高效性能示例代码&#xff1a;使用迭代器的零成本抽象示例代码&#xff1a;泛型和单态化总结 并发编程&#xff1a;防止数据竞争Rust 并发编程示例Rust 的所有权系统防止数据竞争总结 丰富的类型系统包管理…...

八、C#运算符

C#运算符 晕杜甫是一种告诉编辑器执行特定的数学或逻辑操作的符号。C#有丰富的内置运算符&#xff0c;分类如下&#xff1a; 算术运算符关系运算符逻辑运算符位运算符赋值运算符其他运算符 算术运算符 下表显示了 C# 支持的所有算术运算符。假设变量 A 的值为 10&#xff0c…...

【HiveSQL】join关联on和where的区别及效率对比

测试环境&#xff1a;hive on spark spark版本&#xff1a;3.3.1 一、执行时机二、对结果集的影响三、效率对比1.内连接1&#xff09;on2&#xff09;where 2.外连接1&#xff09;on2&#xff09;where 四、总结PS 一、执行时机 sql连接中&#xff0c;where属于过滤条件&#…...

如何解决windows自动更新,释放C盘更新内存

第一步&#xff1a;首先关闭windows自动更新组件 没有更新windows需求&#xff0c;为了防止windows自动更新&#xff0c;挤占C盘空间&#xff0c;所以我们要采取停止Windows Update服务。按下WinR打开运行对话框&#xff0c;输入services.msc&#xff0c; 然后按Enter。在服务…...

初学51单片机之PWM实例呼吸灯以及遇到的问题(已解答)

PWM全名Pulse Width Modulation中文称呼脉冲宽度调制 如图 这是一个周期10ms、频率是100HZ的波形&#xff0c;但是每个周期内&#xff0c;高低电平宽度各不相同&#xff0c;这就是PWM的本质。 占空比是指高电平占整个周期的比列,上图第一个波形的占空比是40%&#xff0c;第二个…...

手机天线都去哪里了?

在手机的演变历程中&#xff0c;天线的设计和位置一直是工程师们不断探索和创新的领域。你是否好奇&#xff0c;现在的手机为什么看不到那些曾经显眼的天线了呢&#xff1f; 让我们一起揭开这个谜题。 首先&#xff0c;让我们从基础开始&#xff1a;手机是如何发出电磁波的&…...

计算机网络 —— 应用层(电子邮件)

计算机网络 —— 应用层&#xff08;电子邮件&#xff09; 电子邮件发送电子邮件的过程SMTP特性工作流程 电子邮件格式MIME关键组件工作方式 POP/IMAPPOP&#xff08;邮局协议&#xff09;IMAP&#xff08;因特网邮件访问协议&#xff09; 基于万维网的电子邮箱特点优势常见的基…...

Java18新特性(极简)

一、引言 自1995年Java语言首次亮相以来&#xff0c;它已经成为企业级应用、移动应用和游戏开发等领域不可或缺的一部分。随着技术的不断进步&#xff0c;Java也在持续演化&#xff0c;每个新版本都带来了诸多新特性和性能优化&#xff0c;旨在提升开发者的编程效率和应用程序的…...

vscode连接ssh远程服务器

当使用Visual Studio Code (VSCode) 连接SSH远程服务器时&#xff0c;可以遵循以下步骤。这些步骤将帮助你设置并连接到远程服务器&#xff0c;包括免密登录的设置&#xff08;如果需要&#xff09;。 一、安装并配置Remote-SSH插件 下载并安装VSCode&#xff1a;确保你已经下…...

【趣味测试】

编程过程中遇到的趣味知识 1 Cpp 1.1 浮点数计算 if (0.1 0.2 0.3) {std::cout << "0.1 0.2 0.3 true" << std::endl;} else {std::cout << "0.1 0.2 0.3 false" << std::endl;}if (0.1 0.3 0.4) {std::cout << &…...

数据结构经典面试之数组——C#和C++篇

文章目录 1. 数组的基本概念与功能2. C#数组创建数组访问数组元素修改数组元素数组排序 3. C数组创建数组访问数组元素修改数组元素数组排序 4. 数组的实际应用与性能优化5. C#数组示例6. C数组示例总结 数组是编程中常用的数据结构之一&#xff0c;它用于存储一系列相同类型的…...

docker的基本知识

文章目录 前言docker的基本知识1. docker 的底层逻辑2. docker 的核心要素2.1. 镜像的基本概念:2.2. 容器的基本概念:2.3. 仓库的基本概念: 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作不易啊^ _ ^。   …...

React Native性能优化红宝书

一、React Native介绍 React Native 是Facebook在React.js Conf2015 推出的开源框架&#xff0c;使用React和应用平台的原生功能来构建 Android 和 iOS 应用。通过 React Native&#xff0c;可以使用 JavaScript 来访问移动平台的 API&#xff0c;使用 React 组件来描述 UI 的…...

后端不提供文件流接口,前台js使用a标签实现当前表格数据(数组非blob数据)下载成Excel

前言&#xff1a;开发过程中遇到的一些业务场景&#xff0c;如果第三方不让使用&#xff0c;后端不提供接口&#xff0c;就只能拿到table数据(Array)&#xff0c;实现excel文件下载。 废话不多说&#xff0c;直接上代码&#xff0c;方法后续自行封装即可&#xff1a; functio…...

【AI+实战】零基础部署私人ChatGPT网站:从NextChat到功能定制

1. 为什么你需要一个私人ChatGPT网站&#xff1f; 最近两年AI对话机器人的火爆程度&#xff0c;相信大家都有目共睹。但你是否遇到过这些问题&#xff1a;公共平台经常排队、担心隐私泄露、或者想要定制专属功能&#xff1f;这就是为什么越来越多的个人和小团队开始搭建自己的C…...

Matlab/Simulink仿真BLDC电机:避开转速闭环控制的5个常见坑

BLDC电机转速闭环仿真避坑指南&#xff1a;从参数配置到结果验证的完整解决方案 在电机控制领域&#xff0c;BLDC&#xff08;无刷直流电机&#xff09;因其高效率、长寿命和低维护成本等优势&#xff0c;已成为工业自动化、电动汽车和消费电子等领域的主流选择。Matlab/Simul…...

Fish Speech 1.5开源可部署:模型权重分离存储与热更新机制设计

Fish Speech 1.5开源可部署&#xff1a;模型权重分离存储与热更新机制设计 1. 引言&#xff1a;语音合成的新突破 当你听到一段自然流畅的语音&#xff0c;是否曾想过它可能完全由AI生成&#xff1f;Fish Speech 1.5正是这样一个令人惊叹的技术成果——它能够仅凭10-30秒的参…...

Z-Image-Turbo LoRA Web服务安全加固:禁用前端覆盖负面提示+后端content policy双层防护

Z-Image-Turbo LoRA Web服务安全加固&#xff1a;禁用前端覆盖负面提示后端content policy双层防护 1. 项目概述与安全挑战 造相-Z-Image-Turbo 亚洲美女LoRA Web服务是一个基于Z-Image-Turbo模型的图片生成平台&#xff0c;集成了laonansheng/Asian-beauty-Z-Image-Turbo-To…...

技术速递|6000 万次 Copilot 代码审查 且仍在持续增长

作者&#xff1a;Ria Gopu & David Apirian排版&#xff1a;Alan WangCopilot 代码审查如何帮助团队跟上 AI 加速带来的代码变更。自去年 4 月我们首次推出 Copilot 代码审查&#xff08;CCR&#xff09;以来&#xff0c;其使用量已增长了 10 倍&#xff0c;目前已占 GitHu…...

3步告别桌面混乱:开源免费的NoFences桌面分区管理工具

3步告别桌面混乱&#xff1a;开源免费的NoFences桌面分区管理工具 【免费下载链接】NoFences &#x1f6a7; Open Source Stardock Fences alternative 项目地址: https://gitcode.com/gh_mirrors/no/NoFences 你是否每天都要在杂乱无章的桌面图标中浪费宝贵时间&#x…...

思源宋体免费商用字体:设计师的终极开源字体解决方案

思源宋体免费商用字体&#xff1a;设计师的终极开源字体解决方案 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 还在为商业项目寻找高质量中文字体而烦恼吗&#xff1f;Source Han Se…...

如何获取网易云音乐永久链接:终极免费解决方案指南

如何获取网易云音乐永久链接&#xff1a;终极免费解决方案指南 【免费下载链接】netease-cloud-music-api 网易云音乐直链解析 API 项目地址: https://gitcode.com/gh_mirrors/ne/netease-cloud-music-api 你是否曾经遇到过这样的烦恼&#xff1a;好不容易找到一首喜欢的…...

Java工业协议解析必须掌握的3种字节序处理范式,附ISO/IEC 61131-3兼容性验证报告

第一章&#xff1a;Java工业协议解析必须掌握的3种字节序处理范式&#xff0c;附ISO/IEC 61131-3兼容性验证报告大端序&#xff08;Big-Endian&#xff09;的标准化解析实践 在Modbus TCP与IEC 61850 ACSI通信中&#xff0c;设备寄存器默认采用网络字节序&#xff08;即大端序&…...

教无人机操控3年,这款仿真软件让我彻底告别“真机实训焦虑”

作为无人机专业实操教师&#xff0c;深耕一线教学3年&#xff0c;最大的痛点莫过于“真机实训难”——相信同行们都有共鸣&#xff0c;无人机操控教学看似是“练手”&#xff0c;实则处处是坑&#xff0c;每一个难题都让人头疼不已&#xff0c;甚至一度让我陷入教学焦虑。整理了…...