摘要:前言最近在练习动态规划的题目,然后就随便选择了一道简单的题目爬楼梯,题目如下假设你正在爬楼梯。斐波那契数列爬楼梯实现代码爬楼梯
前言
最近在练习动态规划的题目,然后就随便选择了一道简单的题目——爬楼梯,题目如下:
解题思路假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
注意:给定 n 是一个正整数。示例 1:
输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2 阶示例 2:
输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 1. 1 阶 + 1 阶 + 1 阶 2. 1 阶 + 2 阶 3. 2 阶 + 1 阶
这道题目虽然分类是动态规划,但是实际上就是个斐波那契数列,不过是一个当入参为n时,需对应的是斐波那契数列的f(n+1)。
斐波那契数列:
f(0)=0 f(1)=1 f(2)=f(1)+f(0)=1 f(3)=f(2)+f(1)=2 f(4)=f(3)+f(2)=3 f(5)=f(4)+f(3)=5 f(6)=f(5)+f(4)=8 f(7)=f(6)+f(5)=13
爬楼梯:
c(0)=f(0)=0 c(1)=f(0)+f(1)=f(2)=1 c(2)=f(1)+f(2)=f(3)=2 c(3)=f(2)+f(3)=f(4)=3 c(4)=f(3)+f(4)=f(5)=5 c(5)=f(4)+f(5)=f(6)=8 c(6)=f(5)+f(6)=f(7)=13实现代码
/** * 爬楼梯 * @param n * @return */ public int climbStairs(int n) { if(n==1){ return 1; }else if(n==2){ return 2; }else{ int f1 = 1; int f2 = 2; int result = 0; for (int i = 3; i <=n; ++i){ result=f1+f2; f1 = f2; f2 = result; } return result; } }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/76982.html
摘要:题目假设你正在爬楼梯。需要阶你才能到达楼顶。你有多少种不同的方法可以爬到楼顶呢注意给定是一个正整数。示例输入输出解释有两种方法可以爬到楼顶。阶阶阶阶阶阶阶题解这个题目只要模拟一下基本就能想到是,状态方程写出来就是斐波那契数列。 题目 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示...
摘要:题目假设你正在爬楼梯。需要阶你才能到达楼顶。你有多少种不同的方法可以爬到楼顶呢注意给定是一个正整数。示例输入输出解释有两种方法可以爬到楼顶。阶阶阶阶阶阶阶题解这个题目只要模拟一下基本就能想到是,状态方程写出来就是斐波那契数列。 题目 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示...
摘要:题目假设你正在爬楼梯。需要阶你才能到达楼顶。你有多少种不同的方法可以爬到楼顶呢注意给定是一个正整数。示例输入输出解释有两种方法可以爬到楼顶。阶阶阶阶阶阶阶题解这个题目只要模拟一下基本就能想到是,状态方程写出来就是斐波那契数列。 题目 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示...
摘要:小鹿题目假设你正在爬楼梯。需要阶你才能到达楼顶。你有多少种不同的方法可以爬到楼顶呢注意给定是一个正整数。算法思路二种解决思路,第一利用递归第二利用动态规划。就是因为有了重复元素的计算,导致了时间复杂度成指数的增长。 Time:2019/4/12Title:Clibing SrairsDifficulty: EasyAuthor:小鹿 题目:Climbing Stairs You a...
阅读 1654·2023-04-26 02:11
阅读 2995·2023-04-25 16:18
阅读 3724·2021-09-06 15:00
阅读 2640·2019-08-30 15:55
阅读 1944·2019-08-30 13:20
阅读 2061·2019-08-26 18:36
阅读 3136·2019-08-26 11:40
阅读 2554·2019-08-26 10:11