深圳外包网站制作公司,discuz 门户网站模板,网络广告策划书的内容,北京电力建设公司现状题目描述
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢#xff1f;
示例 1#xff1a;
输入#xff1a;n 2
输出#xff1a;2
解释#xff1a;有两种方法可以爬到楼顶。
1. 1 阶 1 阶
2. 2 阶
示…题目描述
假设你正在爬楼梯。需要 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 阶
思路 【参考代码随想录】
动态规划5个步骤
1. dp数组含义有dp[n]种方法
2. 公式dp[n] dp[n-1] dp[n-2]
3. 初始化dp[1] 1, dp[2] 2
4. 遍历顺序从前往后
5. 打印数组1235
class Solution(object):def climbStairs(self, n)::type n: int:rtype: intif n1:return ndp [0]*(n1)dp[1] 1dp[2] 2for i in range(3,n1):dp[i] dp[i-1] dp[i-2]return dp[n]if __name____main__:s Solution()n 4print(s.climbStairs(n))