标签: Rust

13 个内容

笔记(13)

Rust 学习要点:变量绑定(可变性 `mut`),基本数据类型(整数、浮点、布尔、字符),复合类型(元组、数组),控制流(if, loop, while, for, match),所有权与借用,错误处理(Result, Option, unwrap, ?)。通过练习可掌握 Rust 特性。

Elliot Yang·
93 浏览

本文深入解析 Rust 二叉堆实现,涵盖数学本质、工程优化和工业级特性。重点包括泛型、迭代优化、内存布局、动态调整、性能测试、线程安全及常见问题解决。探讨了标准库BinaryHeap的优化策略及未来演进方向,如并行堆、持久化堆和GPU加速堆。

Elliot Yang·
127 浏览

Rust 通过哈希表高效解决 "Sum of Unique Elements" 问题。代码利用迭代器链、Entry API 和惰性求值,统计元素频率,过滤唯一值并求和。文章还讨论了性能优化、所有权问题、哈希碰撞攻击及跨语言实现,强调基准测试、防御性编程和文档注释的重要性。

Elliot Yang·
88 浏览

本文以Rust语言探讨括号生成问题,核心为回溯算法,通过剪枝优化搜索。对比了clone和可变引用两种实现,后者内存效率更高。分析了时间/空间复杂度,并提出预分配内存、迭代法等优化策略。强调Rust所有权管理,并展望了并行化、形式化验证等前沿方向。

Elliot Yang·
99 浏览

车队问题建模为运动学相遇,核心在于计算车辆到达时间并排序。按位置降序后,利用单调栈思想,O(n) 遍历即可确定车队数量。算法关键是逆向思维和时间单调性,总复杂度 O(n log n)。工程实现需注意浮点数精度和排序算法选择。

Elliot Yang·
99 浏览

本文深入解析了 Rust 链表反转,强调了内存模型、所有权系统和工程实践。阐述了 Rust 中链表节点的设计,对比了智能指针的选择,剖析了经典反转算法,并探讨了安全操作、测试、并发、性能优化等实践要点,以及未来发展方向。

Elliot Yang·
122 浏览

本文介绍了使用 Rust 反转链表的算法实现。针对链表反转问题,文章给出了 Rust 代码示例,并详细解释了代码中 `Box` 的作用,以及为何在链表数据结构中必须使用 `Box`。同时,对比了 `Box` 和 `Rc<RefCell<T>>` 的区别,并通过单元测试验证了代码的正确性。还解释了`take`、`as_mut`、`as_ref`、`unwrap`等方法的使用和所有权问题。

Elliot Yang·
99 浏览

本文介绍了解决 Car Fleet 问题的 Rust 代码实现。问题背景是计算到达相同目的地的车队数量,关键在于理解车队的概念:即以相同速度和位置行驶的车辆集合。解决方案是计算每辆车到达目的地的时间,排序后,如果后续车辆到达时间大于当前车队,则形成新的车队。

Elliot Yang·
92 浏览

本文介绍了使用 Rust 解决生成有效括号组合的问题。通过回溯算法,递归生成所有可能的括号组合,并利用变量所有权机制避免编译错误。关键点在于使用 `clone()` 保证变量在多次递归调用中的可用性。

Elliot Yang·
92 浏览

本文介绍了求解数组中唯一元素和的问题。分别使用 Rust 和 TypeScript 两种语言,通过 Hashmap 统计数组中每个元素的出现次数,然后过滤出只出现一次的元素并求和。Rust 解法中使用了 `fold` 和 `filter_map` 方法。

Elliot Yang·
98 浏览

本文介绍了使用 Rust 实现二叉堆(MinHeap)的数据结构。利用 Rust 的 Vector 作为底层存储,实现了`push`(上浮)和 `pop`(下沉)操作来维护堆的完全二叉树和堆性质。代码示例展示了最小堆的实现细节,包括`bubble_up`和`bubble_down`算法。

Elliot Yang·
103 浏览

Trie树(字典树)是一种用于高效字符串操作的数据结构,应用于自动补全、拼写检查等。核心操作包括插入、查询、删除和前缀查询,时间复杂度为O(m),m为字符串长度。为解决空间复杂度问题,可采用压缩或优化结构。文章还包含Rust代码示例。

Elliot Yang·
103 浏览

本文总结了 Rust 的关键概念,包括:可见性控制(`pub(crate)` vs `pub`)、默认私有性、范围迭代差异、单元测试、派生宏(`Default`、`Debug`)、`usize` vs `i32`、引用与解引用、Option处理(`as_ref()` vs `&`)、错误处理、字符串处理(`&str`、`String`、原始字符串),以及Rust语法的变量绑定、数据类型、控制流、所有权、模块和命名空间、集合、并发、文件I/O、网络、函数式编程和测试等重要特性。

Elliot Yang·
128 浏览