微信网站制作合同,官网模板源码,wordpress防止博客恶意采集,衡水商城网站建设Java解决爬楼梯问题
01 题目
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢#xff1f;
示例 1#xff1a;
输入#xff1a;n 2
输出#xff1a;2
解释#xff1a;有两种方法可以爬到楼顶。
1. 1 阶…Java解决爬楼梯问题
01 题目
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢
示例 1
输入n 2
输出2
解释有两种方法可以爬到楼顶。
1. 1 阶 1 阶
2. 2 阶示例 2
输入n 3
输出3
解释有三种方法可以爬到楼顶。
1. 1 阶 1 阶 1 阶
2. 1 阶 2 阶
3. 2 阶 1 阶提示
1 n 45
02 知识点
动态规划
03 我的题解
public class guihua01 {public static void main(String[] args) {
// 测试数据System.out.println(climbStairs(4));}public static int climbStairs(int n) {
// 由数据分析可知要到达第n层楼梯在只能走两步的前提下要先到达n-1层和n-2层
// 用数组来标记到达每一层的方法数int[] numsnew int[n];
// 为了放在数组越界特殊处理前两层if (n1) {return 1;}else if (n2) {return 2;}nums[0]1;nums[1]2;//循环计算for (int i 2; i nums.length; i) {nums[i]nums[i-1]nums[i-2];}
// 返回最后一层return nums[n-1];}
}