【LeetCode】第70题——爬楼梯(难度:简单)

这篇博客详细介绍了LeetCode第70题——爬楼梯问题的解题思路,包括递归和数组两种方法。通过递归和动态规划,解释了如何计算到达n阶楼梯的不同方式,特别指出递归方法可能导致超时,而数组方法在效率和空间使用上更优。此外,博主提醒读者注意动态规划在解决此类问题中的应用,并分享了编程实现的细节。
摘要由CSDN通过智能技术生成

【LeetCode】第70题——爬楼梯(难度:简单)

题目描述

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

注意:给定 n 是一个正整数。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/climbing-stairs
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

  1. 示例 1
    输入: 2
    输出: 2
    解释: 有两种方法可以爬到楼顶。
    1、 1 阶 + 1 阶
    2、 2 阶

  2. 示例 2
    输入: 3
    输出: 3
    解释: 有三种方法可以爬到楼顶。
    1、 1 阶 + 1 阶 + 1 阶
    2、 1 阶 + 2 阶
    3、 2 阶 + 1 阶

解题思路

1个台阶有1种方法,2个台阶有2种方法,3个台阶的方法数目是1个台阶和2个台阶方法数目之和(为什么?3个台阶的攀爬方法为1个台阶的所有方法在最后均一步迈上2个台阶,再加上2个台阶的所有方法在最后均一步迈上1个台阶)。之后可以逐步推导出当n≥3时,方法数为n-2个台阶的方法数及n-1个台阶的方法数之和。

思路一:使用递归

思路二:使用数组

代码详解

方法一:递归

由于递归本身就比较难以编写出,且代码执行容易超时(本人就卡在了45)。因此此种方法仅供了解,不推荐。

public static int climbStairs(int n) {
   
	return c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值