题目链接
一个经典问题,跳楼梯问题,考察最最最简单的DP。
从当前阶梯看,可以向上跳1格或是2格(前提是受到顶部约束);倒过来看,从起点到达当前阶梯的可能路径数是从起点到当前阶梯-1和当前阶梯-2的可能路径数之和(受到底部约束),因为只能来自其下的两个阶梯。
所以,写出状态转移方程: f [ i ] = f [ i − 1 ] + f [ i − 2 ] f[i]=f[i-1]+f[i-2] f[i]=f[i−1]+f[i−2]
注意0台阶的情况,此时没有台阶可以跳,所以结果是0; 但非0的时候可以初始化0台阶处为1。
AC代码(Java语言描述)import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
scanner.close();
if (num == 0) {
System.out.println(0);
return;
}
BigInteger[] nums = new BigInteger[num+1];
nums[0] = nums[1] = BigInteger.ONE;
for (int i = 2; i
关注
打赏
- 【Linux】Ubuntu20.04安装和卸载MySQL8
- 【Linux】Ubuntu 20.04 报错 curl: (23) Failure writing output to destination 的解决方法
- 【Java】JUnit 4.13.2 警告 ‘assertEquals(double, double)‘ is deprecated 的解决方法
- 【JavaScript】处理 @parcel/transformer-js: Browser scripts cannot have imports or exports.
- 【Node.js】Windows环境安装配置NVM和Node.js
- 【Python】处理TypeError: Plain typing.NoReturn is not valid as type argument
- 【Python】Matplotlib可视化50例
- 【C语言】C语言修改MySQL数据库
- 【Java】从默认包导入类和对象报错的解决方法
- 【Java】panel.getGraphics()报错空指针异常的解决方法