斐波那契数列——Go
fibonacci 数列算是不管哪个语言里头都能碰到的一个问题,其过于经典,导致其有很多解法,大体上可以归为遍历,递归,优化的递归,矩阵(矩阵这个确实很厉害)。
什么是 斐波那契数列? 0,1,1,2,3,5,8 … 除了1
和2
以外,剩下的数都满足 f(n) = f(n-2)+f(n-1)
。
递归方式:
1 | // 递归的方式 - 时间复杂度 O(2^n) |
改进递归方式:
使用map
保存计算结果,相当于对已经计算过的数,避免计算第二次。
1 | // 时间复杂度 O(n) |
遍历的方式:
1 | // 时间复杂度 O(n) |
还有个矩阵的方式,这个建议直接搜索其他文章,因为光看代码完全不好懂,还是得伴着原理一起下饭。
推荐文章(由hexo文章推荐插件驱动)
本文标题:斐波那契数列——Go
文章作者:小师
发布时间:2019-06-04
最后更新:2019-06-23
原始链接:chunlife.top/2019/06/04/斐波那契数列——Golang/
版权声明:本站所有文章均采用知识共享署名4.0国际许可协议进行许可