LeetCode实战:三数之和

news/2024/7/5 2:03:21

题目英文

Given an array nums of n integers, are there elements a, b, c in nums such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.

Note:

The solution set must not contain duplicate triplets.

Example:

Given array nums = [-1, 0, 1, 2, -1, -4],A solution set is:
[[-1, 0, 1],[-1, -1, 2]
]

题目中文

给定一个包含 n 个整数的数组nums,判断nums中是否存在三个元素a,b,c,使得a + b + c = 0?找出所有满足条件且不重复的三元组。

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

示例:

给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:
[[-1, 0, 1],[-1, -1, 2]
]

算法实现

public class Solution {public IList<IList<int>> ThreeSum(int[] nums) {IList<IList<int>> result = new List<IList<int>>();if (nums == null || nums.Length < 3)return result;nums = nums.OrderBy(a => a).ToArray();int len = nums.Length;for (int i = 0; i < len; i++){if (nums[i] > 0) // 如果当前数字大于0,则三数之和一定大于0,所以结束循环break;if (i > 0 && nums[i] == nums[i - 1])continue; // 去重int l = i + 1;int r = len - 1;while (l < r){int sum = nums[i] + nums[l] + nums[r];if (sum == 0){result.Add(new List<int>() {nums[i], nums[l], nums[r]});while (l < r && nums[l] == nums[l + 1]) l++; // 去重while (l < r && nums[r - 1] == nums[r]) r--; //去重l++;r--;}else if (sum < 0){l++;}else if (sum > 0){r--;}}}return result;    }
}

实验结果

  • 状态:通过
  • 313 / 313 个通过测试用例
  • 执行用时:468 ms

提交结果


相关图文

  • LeetCode实战:删除链表的倒数第N个节点
  • LeetCode实战:合并两个有序链表
  • LeetCode实战:两两交换链表中的节点
  • LeetCode实战:旋转链表
  • LeetCode实战:相同的树
  • LeetCode实战:对称二叉树
  • LeetCode实战:二叉树的最大深度
  • LeetCode实战:搜索二维矩阵
  • LeetCode实战:将有序数组转换为二叉搜索树
  • 资料分享:数学建模资料分享 – 图论部分
  • 资料分享:数学建模资料分享 – 神经网络部分
  • 如何利用 C# 实现 K 最邻近算法?
  • 如何利用 C# 实现 K-D Tree 结构?
  • 如何利用 C# + KDTree 实现 K 最邻近算法?
  • 如何利用 C# 对神经网络模型进行抽象?
  • 如何利用 C# 实现神经网络的感知器模型?
  • 如何利用 C# 实现 Delta 学习规则?
  • 如何利用 C# 实现 误差反向传播 学习规则?
  • 如何利用 C# 爬取带 Token 验证的网站数据?
  • 如何利用 C# 向 Access 数据库插入大量数据?
  • 如何利用 C# + Python 破解猫眼电影的反爬虫机制?

http://lihuaxi.xjx100.cn/news/255524.html

相关文章

最快下月!地表最强语言模型GPT-4发布在即?CEO暗示:已通过图灵测试

视学算法报道 编辑&#xff1a;Cris【导读】千呼万唤始出来&#xff01;GPT-4&#xff0c;真要来了&#xff1f;作为史上最受期待的AI模型&#xff0c;GPT-4真要来了&#xff1f;这几天&#xff0c;AI分析师罗梅罗的一篇专栏文章&#xff0c;一经推出便迅速「引爆」了整个AI科…

web 前端常用组件【06】Upload 控件

因为有万恶的IE存在&#xff0c;所以当Web项目初始化并进入开发阶段时。 如果是项目经理&#xff0c;需要知道客户将会用什么浏览器来访问系统。 明确知道限定浏览器的情况下&#xff0c;你才能从容的让手下的封装必要的前端组件。 本篇文章试图从常见的上传方式和组件进行分析…

linux系统管理学习笔记之三----软件的安装

linux系统管理学习笔记之三----软件的安装 2009-12-29 19:10:02标签&#xff1a;linux 系统管理    [推送到技术圈] 版权声明&#xff1a;原创作品&#xff0c;允许转载&#xff0c;转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。htt…

js 验证数据类型的4中方法

1.typeof 可以检验基本数据类型 但是引用数据类型&#xff08;复杂数据类型&#xff09;无用&#xff1b; 总结 &#xff1a; typeof 无法识别引用数据类型 包括 bull; 2.instanceof是一个二元运算符&#xff0c;左操作数是一个对象&#xff0c;右操作数是一个构造函数。如…

杭电出了“王炸班”!考研3个清北8个浙大,就业人均起薪30万+

Datawhale分享 学霸班&#xff1a;杭州电子科技大学&#xff0c;人工智能学院杭州电子科技大学人工智能学院出了一个学霸“王炸班”&#xff0c;56人中34人考研上岸&#xff0c;17人考上985&#xff0c;8名浙大&#xff0c;2名清华&#xff0c;1名北大。另外&#xff0c;就业的…

4种 Redis 集群方案介绍+优缺点对比

欢迎关注方志朋的博客&#xff0c;回复”666“获面试宝典在服务开发中&#xff0c;单机都会存在单点故障的问题&#xff0c;及服务部署在一台服务器上&#xff0c;一旦服务器宕机服务就不可用&#xff0c;所以为了让服务高可用&#xff0c;分布式服务就出现了&#xff0c;将同一…

Ideas Of MySelf 20005-07-26

crazy0man(事在人为&#xff01;) 说:常飞 说:&#xff08;呵crazy0man(事在人为&#xff01;) 说:我想crazy0man(事在人为&#xff01;) 说:我们是不是常飞 说:什么常飞 说:&#xff1f;crazy0man(事在人为&#xff01;) 说:应该打起精神来常飞 说:对呀crazy0man(事在人为&…

就是个控制结构,Scala 能有什么新花样呢?

作者 | luanhz来源 | 小数志导读编程语言中最为基础的一个概念是控制结构&#xff0c;几乎任何代码都无时无刻不涉及到&#xff0c;其实也就无外乎3种&#xff1a;顺序、分支和循环。本文就来介绍Scala中控制结构&#xff0c;主要是分支和循环。Scala中的控制结构实质上与其他编…