【AI达人养成营】斐波那契数列知识总结
收藏
1.首先搞明白作业需求逻辑。
2.理解斐波那契数列。
3.网上例子很多,要搞明白为什么直接计算余数往往比先算出原数再取余简单,要解析时间复杂度 O(N)、空间复杂度 O(1)的概念。
4.求斐波那契数列某一项具体的值。要考虑数值过大可能是测试用例的输入很大导致的,列表中数据太多导致内存超限;原来使用append()方法构建一个斐波那契数列时,用一个数组存放它,随着n值的增大,数组占的内存也越来越大。
4.由于 dp 列表第 i 项只与第 i−1 和第 i−2 项有关,因此只需要初始化三个整形变量 sum, a, b ,利用辅助变量 sum 使 a,b 两数字交替前进即可,所指的n就是前两项的和。n大于2时,数组内只保留n的前两项, 前两项相加得到下一项的值,组整体后移,将运行结果保存在第二个位置。
5.用到的公式:(a + b)mod x = ((a mod x) + (b mod x)) mod x
公式中的a和b可以看成斐波那契的 Fn-1 和 Fn-2,这样就不需要对最终的Fn求余,只需要对每一步中的小斐波那契数求余即可。
0
收藏
请登录后评论