
递归
heda3
拥有超过10年的嵌入式开发经验,新一代信息技术工程师/人工智能博士,已申请发明专利15项,其中8项成功获批授权,并在中英文期刊上发表多篇高水平学术论文。在嵌入式系统、算法开发与技术管理领域,积累了丰富的实践经验,并持续在技术社区分享在嵌入式驱动、操作系统、上位机软件、算法优化等开发过程中遇到的关键问题、创新解决方案以及深刻的技术洞察。持续跟随行业前沿,探索嵌入式开发中的最新动态与突破性技术,共同推动技术进步与创新!
展开
-
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 · 328 阅读 · 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 · 185 阅读 · 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 · 143 阅读 · 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 · 266 阅读 · 0 评论 -
递归理解
解释1: 假设我们现在都不知道什么是递归,我们自然想到打开浏览器:输入到谷歌的网页,点击搜索递归,然后在为维基百科中了解到了递归的基本定义。在了解到了递归实际上是和栈有关的时候,你又蒙圈了,什么是栈呢?数据结构没学清楚,此时的你只能又打开谷歌,搜索什么是栈。接下来你依次了解了内存/操作系统。在你基本了解好知识之后,你通过操作系统了解了内存,通过内存了解了栈,通过栈了解了什么是递归这下你恍然大悟!...原创 2019-02-03 08:50:58 · 303 阅读 · 0 评论