我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 比如n=3时,2*3的矩形块有3种覆盖方法 思路:n=0,f=0 n=1,f=1 n=2,f=2 n=3,f=3 n=4,f=5 当n>2时,其实就是斐波那契数列,需要单 ...
分类:
其他好文 时间:
2020-05-09 21:40:32
阅读次数:
70
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 思路:n=1, f=1 n=2,f=2(11;2) n=3,f=3(111;12;21) n=4,f=5(1111,22,121,211,112) 实际上就是一个斐波那契数列 注意 ...
分类:
其他好文 时间:
2020-05-09 21:04:12
阅读次数:
59
斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 给定 N,计算 F(N)。 第一种: 递归来解 ...
分类:
编程语言 时间:
2020-05-04 15:25:23
阅读次数:
106
利用在数组长度N很大的情况下能达到压缩存储的作用。一般还是用在DP题目和递归中,因为DP题目是一个自下而上的扩展过程,我们常常用到是连续的解,而每次用到的只是解集中的最后几个解,所以以滚动数组形式能大大减少内存开支。 比如:斐波那契数列 #include<iostream> using namesp ...
分类:
编程语言 时间:
2020-05-04 15:03:11
阅读次数:
56
最近,我读了一篇有趣的文章,文中介绍了一些未充分使用的Python特性的。在文章中,作者提到,从Python 3.2开始,标准库附带了一个内置的装饰器functools.lru_cache。我发现这个装饰器很令人兴奋,有了它,我们有可能轻松地为许多应用程序加速。 你可能在想,这很好,但这个装饰器究竟 ...
分类:
编程语言 时间:
2020-05-03 21:50:32
阅读次数:
113
生成器 generator ** 生成器指的是生成器对象,可以由生成器表达式得到,也可以使用 yield 关键字得到一个生成器函数,调用这个函数得到一个生成器对象。 生成器对象,是一个可迭代对象,是一个迭代器。 生成器对象,是延迟计算、惰性求值的。 # 生成器表达式m = (i for i in r ...
分类:
编程语言 时间:
2020-04-29 18:46:24
阅读次数:
71
1. 为什么 jdk8用着越来越舒服,各种API, 一顿操作,代码从上到下一气呵成,爽! 突然想到,怎么用stream来实现斐波那契数列? 2. 说干就干 斐波那契数列就是后一个数是前两个数的和,即 n = (n 1) + (n 2) [n 2],那我们去Stream的API中查询,有没有生成这种规 ...
分类:
其他好文 时间:
2020-04-29 12:42:29
阅读次数:
74
通过对斐波那契数列和阶乘把递归转循环(是不是所有递归都可以转为循环?) /*斐波那契数列*/ static function getN($n) { if ($n<=0) return 0; if ($n<=2) return 1; /*递归法*/ return static::getN($n-1) ...
分类:
其他好文 时间:
2020-04-29 12:27:11
阅读次数:
56
什么是动态规划 动态规划小李子 斐波那契数列 自上而下的备忘录法 通过一个数组来及记录已经求过的值,然后在需要的取出那个值即可。 自下而上的动态规划 ...
分类:
其他好文 时间:
2020-04-28 23:00:20
阅读次数:
50
public class Solution { public int Fibonacci(int n) { int ans[] = new int[40]; ans[0] = 0; ans[1] = 1; for(int i=2;i<=n;i++){ ans[i] = ans[i-1] + ans[ ...
分类:
其他好文 时间:
2020-04-25 19:29:03
阅读次数:
97