龙空技术网

LeetCode实战:三数之和

老马的程序人生 26

前言:

今天朋友们对“kdtreepython”大体比较注重,你们都需要学习一些“kdtreepython”的相关知识。那么小编在网上汇集了一些关于“kdtreepython””的相关文章,希望咱们能喜欢,同学们快快来学习一下吧!

​题目英文

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 破解猫眼电影的反爬虫机制?

经过8年多的发展,LSGO软件技术团队在「地理信息系统」、「数据统计分析」、「计算机视觉」等领域积累了丰富的研发经验,也建立了人才培养的完备体系,由于自己准备在「量化交易」领域精进技能,如果大家对这个领域感兴趣可以与我联系,加入我们的量化学习群一起学习探讨。

在这个领域我已做了以下积累:

策略部分:

数字货币 One 的投资价值分析数字资产量化中的跨市场套利策略数字资产量化中的同市场套利策略数字资产量化中的网格交易法我们能否效仿李笑来的投资策略?赚钱是刚需,如何正确的交易股票?

数据部分:

如何利用 C# 爬取 One 的交易数据?如何利用 C# 爬取 One 持有者返利数据?如何利用 C# 爬取BigOne交易所的公告?如何利用 C# 爬取Gate.io交易所的公告?如何利用 C# 爬取「财报说」中的股票数据?

自动化交易部分:

封装BigOne API:身份验证封装BigOne API:获取账户资产封装BigOne API:订单系统封装BigOne API:网格交易法封装BigOne API:代码的重构进一步完善自动化交易系统 01进一步完善自动化交易系统 02进一步完善自动化交易系统 03进一步完善自动化交易系统 04如何开发「股票数据分析软件」(上)如何开发「股票数据分析软件」(中)如何开发「股票数据分析软件」(下)进一步完善「股票数据分析软件」 - 01

后台回复「搜搜搜」,随机获取电子资源!

欢迎关注,请扫描二维码:

标签: #kdtreepython