15. 三数之和 - 力扣(LeetCode)

题目描述

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

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

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

题目示例

输入:nums = [-1,0,1,2,-1,-4]
输出:[[-1,-1,2],[-1,0,1]]
解释:
nums[0] + nums[1] + nums[2] = (-1) + 0 + 1 = 0 。
nums[1] + nums[2] + nums[4] = 0 + 1 + (-1) = 0 。
nums[0] + nums[3] + nums[4] = (-1) + 2 + (-1) = 0 。
不同的三元组是 [-1,0,1] 和 [-1,-1,2] 。
注意,输出的顺序和三元组的顺序并不重要。

解题思路

查看本博主上一篇博客《四数之和》,原理相同。

参考代码

class Solution {public List<List<Integer>> threeSum(int[] nums) {List<List<Integer>> result = new ArrayList<>();if(nums == null || nums.length < 3) {return result;}Arrays.sort(nums);for(int i = 0; i < nums.length - 2; i++) {if(nums[i] > 0) {return result;}if(nums[i] + nums[nums.length-2] + nums[nums.length-1] < 0) {continue;}if(i > 0 && nums[i] == nums[i-1]) {continue;}int left = i + 1;int right = nums.length - 1;while(left < right) {int sum = nums[i] + nums[left] + nums[right];if(sum > 0) {right--;} else if(sum < 0) {left++;} else {result.add(Arrays.asList(nums[i], nums[left], nums[right]));while(left < right && nums[right] == nums[right-1]) {right--;}while(left < right && nums[left] == nums[left+1]) {left++;}left++;right--;}}}return result;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/694407.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用Python编写计算字母或数字个数的程序

小编简单写了一个实现计算字母数字的程序 实例代码&#xff1a; str_n input("输入一段文本&#xff1a;") int_n 0 zimu_n 0 qita_n 0for i in str_n:if i.isdigit():int_n 1elif i.isalpha():zimu_n 1else:qita_n 1 # 其他字符&#xff08;包括空格、标点…

人脸比对-欧氏距离

欧氏距离人脸比对 欧氏距离判断是否同一人脸 embedding_reshape np.array(face.embedding).reshape((1, -1)) face.embedding_normalize preprocessing.normalize(embedding_reshape) # 欧式距离 diffnp.subtract( self.fixed_face.embedding_normalize,face.embedding_nor…

P9063 [yLOI2023] 分解只因数

题目描述 给定一个正整数 n&#xff0c;对 n 分解质因数。 设 np1​p2​p3​⋯px​&#xff0c;其中 pi​ 均为质数。 如果 pi​ 均为奇数&#xff0c;则称 n 为『只因数』。 现在&#xff0c;给出若干个 n&#xff0c;请你判断 n 是不是『只因数』。 输入格式 本题单测试…

Ant Design Pro 快速入门

文章目录 为什么要学习 Ant Design Pro视频教程未来规划 为什么要学习 Ant Design Pro Ant Design Pro 作为阿里巴巴开源的前端优秀项目&#xff0c;开箱即用&#xff0c;从技术新颖程度和架构设计&#xff0c;都非常值得学习。 作为后端为主要技术栈的同学&#xff0c;越好上…

【前端】前端三要素之DOM

写在前面&#xff1a;本文仅包含DOM内容&#xff0c;JavaScript传送门在这里&#xff0c;BOM传送门在这里。 本文内容是假期中刷的黑马Pink老师视频&#xff08;十分感谢Pink老师&#xff09;&#xff0c;原文保存在个人的GitLab中&#xff0c;如果需要写的网页内容信息等可以评…

ORA-600 kclchkblk_4和2662故障---惜分飞

有客户恢复请求:由于未知原因导致aix环境的rac两台主机同时重启之后数据库无法正常启动,初步判断是由于写丢失导致故障&#xff08;ORA-00742 ORA-00353&#xff09; Wed Feb 21 09:23:06 2024 ALTER DATABASE OPEN This instance was first to open Abort recovery for domain…

vue3 + ts + echart 实现柱形图表

首先封装Echart一个文件 代码如下 <script setup lang"ts"> import { ECharts, EChartsOption, init } from echarts; import { ref, watch, onMounted, onBeforeUnmount } from vue;// 定义props interface Props {width?: string;height?: string;optio…

pclpy 窗口可视化多个点云

pclpy 窗口可视化多个点云 一、算法原理二、代码三、结果1.可视化结果 四、相关数据五、问题与解决方案1.问题2.解决 一、算法原理 原理看一下代码写的很仔细的。。目前在同一个窗口最多可视化两个点云。。 二、代码 from pclpy import pcldef CloudShow(cloud1, cloud2):&q…

04 动力云客之登录后获取用户信息+JWT存进Redis+Filter验证Token + token续期

1. 登录后获取用户信息 非常好实现. 只要新建一个controller, 并调用SS提供的Authentication对象即可 package com.sunsplanter.controller;RestController public class UserController {GetMapping(value "api/login/info")public R loginInfo(Authentication a…

C++ 基础算法 双指针 数组元素的目标和

给定两个升序排序的有序数组 A 和 B &#xff0c;以及一个目标值 x 。 数组下标从 0 开始。 请你求出满足 A[i]B[j]x 的数对 (i,j) 。 数据保证有唯一解。 输入格式 第一行包含三个整数 n,m,x &#xff0c;分别表示 A 的长度&#xff0c;B 的长度以及目标值 x 。 第二行包…

使用静态CRLSP配置MPLS TE隧道

正文共&#xff1a;1591 字 13 图&#xff0c;预估阅读时间&#xff1a;4 分钟 静态CRLSP&#xff08;Constraint-based Routed Label Switched Paths&#xff0c;基于约束路由的LSP&#xff09;是指在报文经过的每一跳设备上&#xff08;包括Ingress、Transit和Egress&#xf…

C语言内存模型的深度剖析

一、C语言内存模型的详细构成 在计算机体系结构中&#xff0c;内存被抽象为一个线性的地址空间&#xff0c;C语言内存模型即建立在此基础之上。每个存储单元都有一个唯一的地址&#xff0c;这个地址空间从0开始递增&#xff0c;范围受限于处理器架构和操作系统提供的物理或虚拟…

Ubuntu18.4桌面版安装并配置apt update与远程访问

1、无脑直接一步步安装即可 2、安装完成后与服务器版不同的是 服务器版(参照系统安装博客)通过选项安装openssh,桌面版啊需要通过 apt install openssh-server 进行安装 ----小插曲--- 如果使用apt install openssh-server 时 报错 无法解析ip 那么是由于未配置DNS 配置为1…

使用alist连接百度网盘和阿里云盘挂载到本地磁盘

1、下载alist软件 alist软件下载地址&#xff1a;https://github.com/alist-org/alist 跳转后&#xff0c;找到对应的windows版本 2 、下载后解压&#xff0c;并启动服务 注意&#xff1a;alist的启动方式不是传统的双击启动&#xff0c;需要用命令提示符,启动服务 下载完成…

平时积累的FPGA知识点(9)

平时在FPGA群聊等积累的FPGA知识点&#xff0c;第9期&#xff1a; 31 ldpc的license是什么&#xff1f; 解释&#xff1a;Xilinx公司的Zynq UltraScale RFSoC系列芯片进行项目开发&#xff0c;在某些芯片型号中&#xff0c;自身带有SD-FEC硬核资源&#xff0c;具体查询方式&a…

Aster实现一台电脑当两台使——副屏搭配键鼠

前言&#xff1a;笔者每年回家&#xff0c;都面临着想要和小伙伴一起玩游戏&#xff0c;但小伙伴没有电脑/只有低配电脑的问题。与此同时&#xff0c;笔者自身的电脑是高配置的电脑&#xff0c;因此笔者想到&#xff0c;能否在自己的电脑上运行游戏&#xff0c;在小伙伴的电脑上…

MKS T3BI集成蝶阀说明T3B-T3PRS-232Supplement

MKS T3BI集成蝶阀说明T3B-T3PRS-232Supplement

力扣(leetcode)第455题分发饼干(Python)

455.分发饼干 题目链接:455.分发饼干 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i…

Vue自定义指令的三个方法

目录 ​编辑 介绍 创建方法&#xff1a; min.js注册 script setup中使用 script中使用&#xff1a; 指令钩子 钩子参数 简化形式 对象字面量 在组件上使用 介绍 除了 Vue 内置的一系列指令 (比如 v-model 或 v-show) 之外&#xff0c;Vue 还允许你注册自定义的指令…

在c++11 的unordered_set和unordered_map中插入pair或tuple作为键值

参考:https://blog.csdn.net/pineappleKID/article/details/108341064 想完成的任务 与 遇到的问题 想在c11 的unordered_set和unordered_map中插入pair或tuple作为键值 std::unordered_map<std::pair<std::string,std::string>, int> m;会报错 /usr/include/c/4…