递归的本质

devtools/2025/1/24 8:16:48/

字节面试题叠罗汉,很遗憾没想出来,看了答案挺巧妙的,但是居然是个案例题。。。

复习一下递归的本质

正面解决问题

利用子问题来解决

可以通过规约推导的,基本可以用递归解决!

在写这道算法题时,我想规约中间步骤,嗯是的,我想到了规约,规约的结论可以递归解释,但是这个过程很复杂,但是这个可以递归到子问题!

1.抽象目标能力 2.利用目标能力给出有边界的解

1、抽象目标能力: A-->C其实是一个能力:搬运大于N的底座 + N到1到任何一个位置,有一个中转站点。

那么其实我们可以简单把N块看成1块和N - 1块因为我们有这个能力。

2.那么两块我们就可以进行推导了。这个地方是确定的,可以看成抽象的两块。

递归的本质

函数状态的计算,上面的式子不满足纯函数

好的,以下是纯函数在软件开发中的好处,用简单文字概括:

  1. 代码更清晰:纯函数只依赖输入,逻辑简单易懂。

  2. 容易维护:修改纯函数时,不用担心影响其他地方。

  3. 测试简单:输入固定,输出固定,测试方便。

  4. 并发友好:纯函数没有副作用,适合多线程或并发执行。

  5. 可复用性强:纯函数独立性强,可以在不同地方重复使用

状态的抽象

状态的转换

状态递归

有了每个状态转移,我们甚至可以画出图片

递归与栈

兔子数列

记忆化和待计算的集合即可,确实与顺序无关

同理,上面叠罗汉也可以进行非递归实现

如果随机选择pending计算的,可能会浪费

但是以递归数和栈的记忆化顺序可以减少这个浪费

如何最快画树?

递归和规约互为逆反,如果可以规约,很大程度可以递归

课后题

算法竞赛题目可以学到的思想还是不少的。


http://www.ppmy.cn/devtools/153083.html

相关文章

STM32+W5500+以太网应用开发+003_TCP服务器添加OLED(u8g2)显示状态

STM32W5500以太网应用开发003_TCP服务器添加OLED(u8g2)显示状态 实验效果3-TCP服务器OLED1 拷贝显示驱动代码1.1 拷贝源代码1.2 将源代码添加到工程1.3 修改代码优化等级1.4 添加头文件路径1.5 修改STM32CubeMX工程 2 修改源代码2.1 添加头文件2.2 main函…

【Docker】搭建一个功能强大的自托管虚拟浏览器 - n.eko

前言 本教程基于群晖的NAS设备DS423的docker功能进行搭建,DSM版本为 DSM 7.2.2-72806 Update 2。 n.eko 支持多种类型浏览器在其虚拟环境中运行,本次教程使用 Chromium​ 浏览器镜像进行演示,支持访问内网设备和公网地址。 简介 n.eko 是…

【openwrt】openwrt odhcpd配置介绍

odhcpd odhcpd是一个嵌入式DHCP/DHCPv6/RA服务器和NDP中继的进程,odhcpd是一个守护进程,用于服务和中继IP管理协议,以配置客户端和下游路由器。它试图遵循IPv6家用路由器的RFC 6204要求。odhcpd为DHCP、RA、无状态SLAAC和有状态DHCPv6、前缀委派提供服务器服务,并可用于在没…

Tomcat异常日志中文乱码怎么解决

Tomcat异常日志中文乱码怎么解决 tomcat日志中文乱码问题 输出其他日志方法解决方法网页报错中文乱码问题我之前试过的方法我的怀疑 能帮我瞅瞅网页报错中文乱码具体该怎么解决吗?可以直接跳转到目录中 网页报错中文乱码问题部分?? tomcat日志中文乱码问题 正…

何时使用Agent,何时避免使用Agent

具体要点总结 ✅ 何时使用代理: 工作流程需要动态调整:当任务涉及复杂、多变的决策路径时(如用户请求包含多个依赖外部数据的子任务)。无法预定义所有情况:当用户需求超出预设的"if/else"逻辑范围时&#…

Vue - ref( ) 和 reactive( ) 响应式数据的使用

一、ref( ) 在 Vue 3 中,ref() 是一个用于创建响应式引用的函数。它是 Vue 3 Composition API(组合式API) 的一部分,允许在组件中创建响应式数据。 使用对象:基本数据类型(String 、Number 、Boolean 、Null 等)、对…

【学习笔记】计算机网络(一)

第1章 概述 文章目录 第1章 概述1.1 计算机网络在信息时代中的作用1.2 互联网概述1.2.1 网络的网络1.2.2互联网基础结构发展的三个阶段1.2.3 互联网的标准化工作 1.3 互联网的组成1.3.1 互联网的边缘部分1.3.2 互联网的核心部分 1.4 计算机网络在我国的发展1.5 计算机网络的类别…

PCIE模式配置

对于VU系列FPGA,当DMA/Bridge Subsystem for PCI Express IP配置为Bridge模式时,等同于K7系列中的AXI Memory Mapped To PCI Express IP。