题目链接
一个经典问题,跳楼梯问题,考察最最最简单的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
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?