Open songyy5517 opened 5 months ago
思路:动态规划
复杂度分析
import java.util.*;
public class Solution {
public int jumpFloorII (int number) {
// write code here
if (number <= 2)
return number;
int fi = 2, res = 0;
for (int i = 3; i <= number; i++){
res = fi * 2;
fi = res;
}
return res;
}
}
2024/4/30
描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶(n为正整数)总共有多少种跳法。
示例1
示例2
分析 这道题已知初始状态,且当前状态可以由之前的状态推导得到,因此可以使用动态规划来解决。主要注意的是,状态转移方程 $f[i] =f[i-1] + f[i-2] + ... + f[1] + f[0] $ ,而 $f[i - 1] = f[i - 2] + ... + f[0]$ ,因此它可简化为 $f[i] = 2 * f[i - 1]$ 。