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

【LeetCode热题 100】三数之和

leetcode原地址:https://leetcode.cn/problems/3sum/description

描述

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

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

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

示例 1:

输入: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] 。
注意,输出的顺序和三元组的顺序并不重要。
示例 2:

输入:nums = [0,1,1]
输出:[]
解释:唯一可能的三元组和不为 0 。
示例 3:

输入:nums = [0,0,0]
输出:[[0,0,0]]
解释:唯一可能的三元组和为 0 。

提示:

3 <= nums.length <= 3000
-105 <= nums[i] <= 105

题解

public List<List<Integer>> threeSum(int[] nums) {List<List<Integer>> result = new ArrayList<>();Arrays.sort(nums);int length = nums.length;int index = -1;for (int i = 0; i < length; i++) {if (index != -1 && nums[index] == nums[i]) {continue;}int l = i + 1, r = length - 1;while (l < r) {int sum = nums[i] + nums[l] + nums[r];if (sum == 0) {result.add(Arrays.asList(nums[i], nums[l], nums[r]));int temp = nums[l];while (l < r && temp == nums[l]){l++;} } else if (sum < 0) {l++;} else {r--;}}index = i;}return result.stream().distinct().collect(Collectors.toList());}

相关文章:

  • Python日志管理利器:如何高效管理平台日志
  • 【机器学习】智能创意工厂:机器学习驱动的AIGC,打造未来内容新生态
  • CentOS中的rename命令
  • 别让日志拖垮网站速度
  • Python多语言欧拉法和预测校正器实现
  • 20240621每日后端---------如何优化项目中的10000个if-else 语句?
  • ⭐Unity 控制任意UI的渐隐渐显
  • JDBC从入门到精通-笔记(一):JDBC基本概念与开发基础
  • 构建安全高效的前端权限控制系统
  • Flutter 实现软鼠标
  • 寻找重复数 - LeetCode 热题 100
  • QCombox绑定QMap
  • Map-JAVA面试常问
  • exzxml C语言XML解析库使用记录
  • selenium框架学习
  • [数据结构]链表的实现在PHP中
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • Brief introduction of how to 'Call, Apply and Bind'
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • input实现文字超出省略号功能
  • js递归,无限分级树形折叠菜单
  • Linux各目录及每个目录的详细介绍
  • WePY 在小程序性能调优上做出的探究
  • 初识 webpack
  • 基于 Babel 的 npm 包最小化设置
  • 基于Android乐音识别(2)
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 你真的知道 == 和 equals 的区别吗?
  • 小程序01:wepy框架整合iview webapp UI
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • python最赚钱的4个方向,你最心动的是哪个?
  • ​​​​​​​​​​​​​​Γ函数
  • ​卜东波研究员:高观点下的少儿计算思维
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • ​如何防止网络攻击?
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • ###STL(标准模板库)
  • #if 1...#endif
  • (7)摄像机和云台
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (二)JAVA使用POI操作excel
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (限时免费)震惊!流落人间的haproxy宝典被找到了!一切玄妙尽在此处!
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (转)3D模板阴影原理
  • (转)Linux下编译安装log4cxx
  • (转)ORM
  • (转)Windows2003安全设置/维护
  • (转载)虚函数剖析
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET Core 成都线下面基会拉开序幕