Hello 算法 1.1.0 Rust版的递归树(recursion tree)。 图 2‑6 斐波那契数列的递归树 从本质上看,递归体现了“将问题分解为更小子问题”的思维范式,这种分治策略至关重要。 ‧ 从算法角度看,搜索、排序、回溯、分治、动态规划等许多重要算法策略直接或间接地应用了这种思维 方式。 ‧ 从数据结构角度看,递归天然适合处理链表、树和图的相关问题,因为它们非常适合用分治思想进行分 析。 2.2.3 两者对比 子问题的解都已经被正确地 计算出来。 根据以上分析,我们已经可以直接写出动态规划代码。然而子问题分解是一种从顶至底的思想,因此按照 “暴力搜索 → 记忆化搜索 → 动态规划”的顺序实现更加符合思维习惯。 1. 方法一:暴力搜索 从状态 [?, ?] 开始搜索,不断分解为更小的状态 [? − 1, ?] 和 [?, ? − 1] ,递归函数包括以下要素。 ‧ 递归参数:状态 [?, ?]0 码力 | 388 页 | 18.50 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Rust 版的递归树(recursion tree)。 图 2‑6 斐波那契数列的递归树 从本质上看,递归体现了“将问题分解为更小子问题”的思维范式,这种分治策略至关重要。 ‧ 从算法角度看,搜索、排序、回溯、分治、动态规划等许多重要算法策略直接或间接地应用了这种思维 方式。 ‧ 从数据结构角度看,递归天然适合处理链表、树和图的相关问题,因为它们非常适合用分治思想进行分 析。 2.2.3 两者对比 子问题的解都已经被正确地 计算出来。 根据以上分析,我们已经可以直接写出动态规划代码。然而子问题分解是一种从顶至底的思想,因此按照 “暴力搜索 → 记忆化搜索 → 动态规划”的顺序实现更加符合思维习惯。 1. 方法一:暴力搜索 从状态 [?, ?] 开始搜索,不断分解为更小的状态 [? − 1, ?] 和 [?, ? − 1] ,递归函数包括以下要素。 ‧ 递归参数:状态 [?, ?]0 码力 | 387 页 | 18.51 MB | 10 月前3
Hello 算法 1.0.0 Rust版的「递归树 recursion tree」。 图 2‑6 斐波那契数列的递归树 从本质上看,递归体现了“将问题分解为更小子问题”的思维范式,这种分治策略至关重要。 ‧ 从算法角度看,搜索、排序、回溯、分治、动态规划等许多重要算法策略直接或间接地应用了这种思维 方式。 ‧ 从数据结构角度看,递归天然适合处理链表、树和图的相关问题,因为它们非常适合用分治思想进行分 析。 2.2.3 两者对比 子问题的解都已经 被正确地计算出来。 根据以上分析,我们已经可以直接写出动态规划代码。然而子问题分解是一种从顶至底的思想,因此按照 “暴力搜索 → 记忆化搜索 → 动态规划”的顺序实现更加符合思维习惯。 1. 方法一:暴力搜索 从状态 [?, ?] 开始搜索,不断分解为更小的状态 [? − 1, ?] 和 [?, ? − 1] ,递归函数包括以下要素。 ‧ 递归参数:状态 [?, ?]0 码力 | 383 页 | 17.61 MB | 1 年前3
Rust 程序设计语言简体中文版可以兼得。试试看 Rust,说不定它的选择就适合你。 本书适合哪些人 本书假设你已经有其他编程语言的经验,任何语言均可,我们尽可能让各种语言背景的人都能 读懂。本书的重点不是程序设计本身,也不是程序设计思维。如果你完全没学过编程,建议你 先阅读专门介绍程序设计的书籍。 如何阅读本书 本书大体上假设您按从头到尾的顺序阅读。后面的章节建立在前面章节概念的基础上。前面的 章节可能不会深入介绍部分主题,而是留待后续章节重新讨论。0 码力 | 600 页 | 12.99 MB | 1 年前3
Rust 程序设计语言 简体中文版 1.85.0可以兼得。试试看 Rust,说不定它的选择就适合你。 本书适合哪些人 本书假设你已经有其他编程语言的经验,任何语言均可,我们力求让各种语言背景的人都能读 懂。本书的重点不是程序设计本身,也不是程序设计思维。如果你完全没学过编程,建议你先 阅读专门介绍程序设计的书籍。 如何阅读本书 本书大体上假设你按从头到尾的顺序阅读。后面的章节建立在前面章节概念的基础上。前面的 章节可能不会深入介绍部分主题,而是留待后续章节重新讨论。0 码力 | 562 页 | 3.23 MB | 28 天前3
共 5 条
- 1













