求斐波那契数列
1.递归
效率低的算法,挑剔的面试官不会喜欢
long long fibonacci(unsigned int n) { if (n <= 0) { return 0; } if (n == 1) { return 1; } return fibonacci(n - 1) + fibonacci(n - 2); }
2.循环
面试官期待的实用的算法
long long fibonacci(unsigned int n) { int result[2] = {0, 1}; if (n <= 1) { return result[n]; } long long fibNMinusone = 1; long long fibNMinustwo = 0; long long fibN = 0; int i = 0; for (i = 2; i <= n; i++) { fibN = fibNMinusone + fibNMinustwo; fibNMinustwo = fibNMinustwo; fibNMinusone = fibN; } return fibN; }
3.时间复杂度为O(log n)的算法
小编还不会,等小编学会再来完善
如有不足:请告诉小凯,会及时更新与修改的,谢谢大家
如果对github感兴趣可以到我的github中看一下