题目描述 大家都知道斐波那契(Fibonacci)数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。 要求使用递归和非递归两种方法 1.递归 时间复杂度:O(2n) public class Solution { public int Fibonacci ...
分类:
其他好文 时间:
2020-05-13 23:34:59
阅读次数:
76
静态查找 数据集合稳定,不需要添加,删除元素的查找 对于静态查找:可以用线性表结构组织数据,这样便可使用顺序查找算法,如果再对关键字进行排序,则可使用折半查找法或斐波那契查找法等来提高效率 动态查找 数据集合在查找的过程中需要同时添加或删除元素的查找 对于动态查找:可考虑使用二叉排序树的查找技术,另 ...
分类:
其他好文 时间:
2020-05-11 15:11:36
阅读次数:
82
1.斐波那契数列 (推荐使用动态规划的,当输入n=40的时候就能明显的感觉出递归的不足了) 这个递归思想是最简单的了static int feiboArr(int n) { if (n == 0) { return 0; } else if (n==1) { return 1; } else if ...
分类:
编程语言 时间:
2020-05-11 15:09:26
阅读次数:
59
我们可以用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
2.阅读代码——动态规划 乔治·桑塔亚纳说过,“那些遗忘过去的人注定要重蹈覆辙。”这句话放在问题求解过程中也同样适用。不懂动态规划的人会在解决过的问题上再次浪费时间,懂的人则会事半功倍。那么什么是动态规划?这种算法有何神奇之处? 目的:为了避免解决重复性问题 斐波那契 1.递归算法 任何一个递归函数 ...
分类:
其他好文 时间:
2020-05-06 13:54:18
阅读次数:
50
平方数之和:给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 $a^2$ + $b^2$ = c。 费马定理: 1、任何形为$4n+1$的素数都能表示为两个平方数之和。 2、如果两个整数都能表示为两个平方数之和,则它们的积也能表示为两个平方数之和。 斐波那契恒等式:$(a^2+b^ ...
分类:
其他好文 时间:
2020-05-05 23:37:49
阅读次数:
63
斐波那契数,通常用 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