题目描述:
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
code:
分析:该题为一个斐波那契数列,与 https:////www.cnblogs.com/s-star/p/12512501.html 同理
递归:
public class Solution { public int Fibonacci(int n) { if (n <= 1) { return n; } return Fibonacci(n - 1) + Fibonacci(n - 2); } }
数组存储:
public class Solution { public int Fibonacci(int n) { if (n <= 1) { return n; } int arr[] = new int[n + 1]; arr[0] = 0; arr[1] = 1; for (int i = 2; i <= n; i++) { arr[i] = arr[i - 1] + arr[i - 2]; } return arr[n]; } }
动态规划:
public class Solution { public int Fibonacci(int n) { if (n <= 1) { return n; } //存储n位置值的变量 int x = 1; //存储n-1位置的变量 int y = 0; for (int i = 2; i <= n; i++) { //i位置的值 x = x + y; //i-1位置的值 y = x - y; } //返回n位置值 return x; } }