news 2026/8/29 18:47:10

DeepSeek LeetCode 15.三数之和 Rust实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DeepSeek LeetCode 15.三数之和 Rust实现

下面是 LeetCode 15「三数之和」的 Rust 实现,使用排序 + 双指针,时间复杂度 O(n²)。

```rust
impl Solution {
pub fn three_sum(mut nums: Vec<i32>) -> Vec<Vec<i32>> {
let mut ans: Vec<Vec<i32>> = Vec::new();
let n = nums.len();

if n < 3 {
return ans;
}

// 先排序,方便双指针和去重
nums.sort_unstable();

for i in 0..n - 2 {
// 跳过重复的第一个数
if i > 0 && nums[i] == nums[i - 1] {
continue;
}

// 如果当前数已经大于 0,后面不可能再凑出 0
if nums[i] > 0 {
break;
}

let (mut left, mut right) = (i + 1, n - 1);

while left < right {
let sum = nums[i] + nums[left] + nums[right];

if sum == 0 {
ans.push(vec![nums[i], nums[left], nums[right]]);

// 跳过重复的 left 和 right
while left < right && nums[left] == nums[left + 1] {
left += 1;
}
while left < right && nums[right] == nums[right - 1] {
right -= 1;
}

left += 1;
right -= 1;
} else if sum < 0 {
left += 1;
} else {
right -= 1;
}
}
}

ans
}
}
```

思路:

1. 先对数组排序。
2. 固定第一个数 nums[i],然后用双指针 left 和 right 在剩余区间内寻找另外两个数。
3. 如果三数之和等于 0,记录结果,并跳过重复的 left 和 right。
4. 如果和小于 0,说明需要增大,左指针右移;如果和大于 0,右指针左移。
5. 外层循环中跳过重复的 nums[i],避免重复三元组。

复杂度:

· 时间复杂度:O(n²)
· 空间复杂度:O(log n)(排序栈空间),返回结果不计入额外空间。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/29 18:46:03

基于R Shiny与Leaflet的拍照赚钱数据地图可视化应用开发实践

1. 项目概述&#xff1a;从“拍照赚钱”到数据洞察的桥梁几年前&#xff0c;一个名为“拍照赚钱”的商业模式曾引发不少讨论。其核心逻辑并不复杂&#xff1a;平台发布线下任务&#xff08;比如去某个超市拍下特定货架的照片&#xff09;&#xff0c;用户接单前往完成并拍照上传…

作者头像 李华
网站建设 2026/8/29 18:44:39

本地文件搜索工具免安装不建索引秒出结果

TommSearch 昨天聊了dnGrep&#xff0c;主打全文内容搜索&#xff0c;连压缩包都能钻进去搜。今天这款走的是另一个路子——极速文件名搜索。两个工具搭配着用&#xff0c;一个搜内容&#xff0c;一个搜文件名&#xff0c;基本就把电脑搜索这件事全覆盖了。 不建索引&#xf…

作者头像 李华
网站建设 2026/8/29 18:42:22

英飞凌推出20Gbps通用USB外设控制器,补齐设备端带宽短板

记得刚入行那会儿&#xff0c;我还在跟 USB 2.0 的 480Mbps 打交道&#xff0c;调一个批量传输端点都得翻半天手册。谁能想到&#xff0c;现在行业已经卷到外设控制器直接上 20Gbps 了。英飞凌官宣推出业界首款 20Gbps 通用 USB 外设控制器&#xff08;Universal USB Periphera…

作者头像 李华
网站建设 2026/8/29 18:40:57

**《金字塔集群具身智能架构》开源声明与授权协议**

《金字塔集群具身智能架构》开源声明与授权协议 1. 开源初衷与愿景 为推动具身智能&#xff08;Embodied AI&#xff09;领域的底层技术革新&#xff0c;打破传统“大模型硬扛”与“死板算法”的瓶颈&#xff0c;本团队决定将自主研发的“基于 Linux 实时内核的金字塔式集群 AI…

作者头像 李华
网站建设 2026/8/29 18:39:05

奇安信技术支持工程师面试复盘:从笔试到追问的完整指南

奇安信2020技术支持工程师的面试&#xff0c;我是在5月31日那天参加的。那场面试从上午九点开始&#xff0c;一直持续到下午一点半&#xff0c;四轮考核下来&#xff0c;我最大的感受是&#xff1a;这个岗位不是普通客服&#xff0c;也不是单纯研发&#xff0c;而是夹在客户和产…

作者头像 李华
网站建设 2026/8/29 18:38:59

VSCode 1.65.0 32位zip版绿色部署与配置实战指南

简介&#xff1a;Visual Studio Code 作为跨平台代码编辑器&#xff0c;凭借丰富的插件体系和高度可定制性成为开发者的主流选择。其发行版本包含 Installer 与绿色 zip 包&#xff0c;而 win32-ia32 则对应 32 位 Windows 环境。理解版本差异是正确选型的前提&#xff0c;zip …

作者头像 李华