![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
递归
heda3
从事嵌入式开发10年+,国内某一流研究所的研究生,新一代信息技术工程师职称,申请撰写发明专利15项/授权8项,发表中英文期刊2篇。目前从事嵌入式系统、算法开发及管理,持续分享嵌入式驱动、操作系统、上位机软件、算法等开发过程中遇到的问题、解决方法及知识点
展开
-
30.斐波那契数列
题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39解法1:递归缺点:需要保存中间重复参数,运算量大class Solution {public: int Fibonacci(int n) { if(n<=0) return 0; if(...原创 2019-02-07 22:53:25 · 291 阅读 · 0 评论 -
31.跳台阶
题目描述1一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。解题思路:如果把n级台阶的跳法看成是n的函数,则跳法记为F(n)分为两种情况,跳一级台阶,跳二级台阶;跳一级台阶时:后面还剩下n-1级台阶的跳法F(n-1)跳二级台阶时:后面还剩下n-2级台阶的跳法F(n-2)则F(n)=F(n-1)+F(n-...原创 2019-02-08 09:45:27 · 149 阅读 · 0 评论 -
32.变态跳台阶
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。解题思路:分析:用Fib(n)表示青蛙跳上n阶台阶的跳法数,青蛙一次性跳上n阶台阶的跳法数1(n阶跳),设定Fib(0) = 1;当n = 1 时, 只有一种跳法,即1阶跳:Fib(1) = 1;当n = 2 时, 有两种跳的方式,一...原创 2019-02-08 10:28:33 · 116 阅读 · 0 评论 -
33.矩形覆盖
题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?思路:可以从第n-1到一步到n,这样的话有多少种方案覆盖到n-1就有多少种方案覆盖到n,另外我们也可以从n-2覆盖到n,有多少种方案覆盖到n-2就有多少种方案覆盖到n.?可以这样认为2*1的矩形有两种可能;1)竖着2*1 2)横着 此时必须是两块2*1...原创 2019-02-08 11:42:55 · 226 阅读 · 0 评论 -
递归理解
解释1:假设我们现在都不知道什么是递归,我们自然想到打开浏览器:输入到谷歌的网页,点击搜索递归,然后在为维基百科中了解到了递归的基本定义。在了解到了递归实际上是和栈有关的时候,你又蒙圈了,什么是栈呢?数据结构没学清楚,此时的你只能又打开谷歌,搜索什么是栈。接下来你依次了解了内存/操作系统。在你基本了解好知识之后,你通过操作系统了解了内存,通过内存了解了栈,通过栈了解了什么是递归这下你恍然大悟!...原创 2019-02-03 08:50:58 · 277 阅读 · 0 评论