当前位置: 首页 > news >正文

数据结构-递归算法-第四天

参考文献:
华为云
博客园
labuladong 的算法笔记
递归是一种编程技巧,一种解决问题的思维方式;分治算法和动态规划很大程度上是递归思想基础上的(虽然动态规划的最终版本大都不是递归了,但解题思想还是离不开递归),解决更具体问题的两类算法思想;贪心算法是动态规划算法的一个子集,可以更高效解决一部分更特殊的问题。

在数学与计算机科学中,递归 (Recursion)是指在函数的定义中使用函数自身的方法。直观上来看,就是某个函数自己调用自己。简而言之,递归的基本思想就是把规模大的问题转化为规模小的相同的子问题来解决。
递归的思维,逼迫我们倒着思考,看到问题的尽头,把解决问题的过程看做过去时。
递归算法的核心在于两个基本组成部分:递归主体和终止条件。

解决递归问题一般就三步曲,分别是:
第一步,定义函数功能
第二步,寻找递归终止条件
第二步,递推函数的等价关系式

对于递归主体,一般有两种形式:递推公式和递推关系。

对于一些数学逻辑关系明显,能用公式表达的问题,可采用递推公式。
对于一些不易用公式表达的问题,要尽量发掘问题中的逻辑,用递推关系表示。

如计算阶乘,Fibonacci数列。

已知Fibonacci数列为:1、1、2、3、5、8…,求Fibonacci数列的第n个数是多少?

递推公式已经得到:F(n)=F(n-1)+F(n-2);
终止条件就是:F(1)=F(2)=1。

//Fibonacci数列函数 
int Fibonacci(int n) {if(n==1||n==2)return 1;elsereturn Fibonacci(n-1)+Fibonacci(n-2);
}

具体题目例子:
在这里插入图片描述

leetcode题解

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 8.22 万灵药(SAM + Trie + 树剖 + 线段树)
  • STL—list—模拟实现【迭代器的实现(重要)】【基本接口的实现】
  • 记录 Ant Design Table 组件使用的问题
  • 深入理解HTTP的基础知识:请求-响应过程解析
  • Google Ads投放 | 如何分析竞争对手的谷歌广告?
  • 【仿真与实物设计】基于51单片机设计的打地鼠游戏机——程序源码原理图proteus仿真图PCB设计文档演示视频元件清单等(文末工程资料下载)
  • 黑神话悟空,高清壁纸、原画,游戏截图
  • EXCEL格式转化
  • ARM 裸机与 Linux 驱动对比及 Linux 内核入门
  • 特斯拉电动卡车事故引发安全调查,汽车制造商电动车战略调整
  • 【网络编程】第八章 传输层-udp(netstat+pidof+upd协议)
  • 继Ollama之后,Go在AI领域再下一城
  • Vue3学习——Node环境安装(一)
  • 【Redis】数据结构和内部编码
  • 模型量化方法-GPTQ
  • “大数据应用场景”之隔壁老王(连载四)
  • Android交互
  • Electron入门介绍
  • ES6系统学习----从Apollo Client看解构赋值
  • idea + plantuml 画流程图
  • JS 面试题总结
  • js操作时间(持续更新)
  • nodejs:开发并发布一个nodejs包
  • Spring Cloud Feign的两种使用姿势
  • 阿里研究院入选中国企业智库系统影响力榜
  • 程序员最讨厌的9句话,你可有补充?
  • 数据结构java版之冒泡排序及优化
  • 携程小程序初体验
  • 延迟脚本的方式
  • 一份游戏开发学习路线
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • #systemverilog# 之 event region 和 timeslot 仿真调度(十)高层次视角看仿真调度事件的发生
  • #知识分享#笔记#学习方法
  • (39)STM32——FLASH闪存
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (回溯) LeetCode 46. 全排列
  • (五十)第 7 章 图(有向图的十字链表存储)
  • (一)基于IDEA的JAVA基础12
  • (转)IOS中获取各种文件的目录路径的方法
  • (转)负载均衡,回话保持,cookie
  • ***检测工具之RKHunter AIDE
  • ***利用Ms05002溢出找“肉鸡
  • .“空心村”成因分析及解决对策122344
  • .Family_物联网
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .naturalWidth 和naturalHeight属性,
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .Net Core 中间件与过滤器
  • .Net 垃圾回收机制原理(二)
  • .NET 使用配置文件
  • .NET 药厂业务系统 CPU爆高分析
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换