題目一:大家都知道斐波那契數(shù)列,現(xiàn)在要求輸入一個整數(shù)n讯柔,請你輸出斐波那契數(shù)列的第n項(從0開始,第0項為0)。
n<=39
練習(xí)地址
https://www.nowcoder.com/practice/c6c7742f5ba7442aada113136ddea0c3
https://leetcode-cn.com/problems/fei-bo-na-qi-shu-lie-lcof/
方法1:遞歸
public class Solution {
public int Fibonacci(int n) {
if (n <= 0) {
return 0;
}
if (n == 1) {
return 1;
}
return Fibonacci(n - 1) + Fibonacci(n - 2);
}
}
復(fù)雜度分析
- 時間復(fù)雜度:O(nlogn)离赫。
- 空間復(fù)雜度:O(nlogn)。
方法2:循環(huán)
public class Solution {
public int Fibonacci(int n) {
if (n <= 0) {
return 0;
}
if (n == 1) {
return 1;
}
int last = 0, result = 1;
for (int i = 2; i <= n; i++) {
result += last;
last = result - last;
}
return result;
}
}
復(fù)雜度分析
- 時間復(fù)雜度:O(n)塌碌。
- 空間復(fù)雜度:O(1)渊胸。
題目二:一只青蛙一次可以跳上1級臺階,也可以跳上2級台妆。求該青蛙跳上一個n級的臺階總共有多少種跳法(先后次序不同算不同的結(jié)果)翎猛。
練習(xí)地址
https://www.nowcoder.com/practice/8c82a5b80378478f9484d87d1c5f12a4
https://leetcode-cn.com/problems/qing-wa-tiao-tai-jie-wen-ti-lcof/
參考答案
實際就是斐波那契數(shù)列胖翰,與上題解法類似。