标签: 递归

9 个内容

笔记(7)

本文深入探讨递归的三种形态:记忆化、分治和回溯。记忆化通过缓存避免重复计算,分治分解问题递归解决再合并,回溯是带剪枝的深度优先搜索。讨论了递归与迭代的效率,给出工程实践建议和调试技巧,并扩展到分布式系统和机器学习的应用。

Elliot Yang·
102 浏览

链表反转是数据结构基础,涉及指针操作、递归思维。本文解析了双指针迭代(O(1)空间)和递归(O(n)空间)两种主流方案,对比优劣并探讨工程实践要点及进阶问题,强调生产环境优先选择迭代法。

Elliot Yang·
91 浏览

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

Elliot Yang·
92 浏览

本文介绍了使用回溯算法解决数独问题。回溯算法是一种试探搜索型算法,通过深度优先搜索策略,从可能的选项中选择一个,若无法得出正确解则回退一步,选择其他选项。在数独中,即从左上角空格开始,尝试填入数字,若无法填入则回溯到上一个空格,更改其值,直至找到解决方案或确定无解。

Elliot Yang·
90 浏览

本文探讨了反转链表问题。针对该问题,文章提供了两种解决方案:递归和双指针。递归方案的关键在于确定基本情况,而双指针方案则通过迭代改变节点指向来反转链表。文章给出了对应 TypeScript 代码示例。

Elliot Yang·
144 浏览

本文探讨递归的三种形式:记忆化、分治和回溯。重点讲解回溯法,用于解决N个for循环问题,通过试错和剪枝优化进行暴力搜索,并给出经典例题及代码示例。同时分析了JS中递归与迭代的效率问题,通常迭代效率更高。

Elliot Yang·
113 浏览

尾调用优化(TCO)是一种函数调用优化技术,当函数最后一个操作是调用另一个函数时,无需返回到原调用者,节省栈空间。文章解释了尾调用的概念、如何判断尾调用位置,以及如何将非尾递归函数转换为尾递归函数。TCO仅在严格模式下生效,目前仅Safari浏览器支持。

Elliot Yang·
128 浏览

动态(2)

E
Elliot Yang
公开

面试的时候如何保持风趣幽默?

为什么不使用递归?因为我 stackoverflow 了

浏览:166点赞:0
E
Elliot Yang
公开

喜报:人脑不能理解递归。(我已经栈溢出了)

浏览:195点赞:0