leetcode 70. 爬楼梯(java & python3)

LeetCode 70 - 爬楼梯 本文介绍了LeetCode70题“爬楼梯”的解题方法。题目要求计算爬到n阶楼梯的不同方法数,每次可以爬1或2阶。核心思路是将问题转化为斐波那契数列问题,通过动态规划求解。文章详细讲解了三种解法:基础动态规划(O(n)空间)、空间优化动态规划(O(1)空间)和矩阵快速幂(O(log n)时间)。提供了PythonJava和Rust的代码实现,并总结了动态规划的关键点、易错点和优化方向。该问题帮助理解状态转移和空间优化技巧,是动态规划的经典入门题目。 阅读详情

java: 

class Solution {
    public int climbStairs(int n) {
        int p=0,q=0,r=1;
        for(int i=0;i<n;i++){
            p=q;
            q=r;
            r=p+q;
        }
        return r;
    }
}

大佬们直接用公式也是我没想到 好强 

class Solution {
    public int climbStairs(int n) {
        double sqrt_5=Math.sqrt(5);
        double fib_n=Math.pow((1+sqrt_5)/2,1+n)-Math.pow((1-sqrt_5)/2,1+n);
        return (int)(fib_n/sqrt_5);
    }
}

 python3:

class Solution:
    def climbStairs(self, n: int) -> int:
        p, q, r = 0, 0, 1
        for i in range(n):
            p = q
            q = r
            r = p + q
        return r

Leetcode70--爬楼梯 Leetcode70爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 编程语言:python 作者:黑暗主宰 邮箱:shengzhanhe@gmail.com 文章目录Leetcode70--爬楼梯题目描述解题思路 Leetcode70爬楼梯 题目描述 原题链接: ​ https://leetcode-cn.com... 阅读详情

相关推荐

LeetCodePython70. 爬楼梯

一、题目描述 斐波那契数列(70):https://leetcode.com/problems/climbing-stairs/description/ 假设你正在爬楼梯。需要n阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定n是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1. 1...

IOT_victor的博客 551

leetcode 70. 爬楼梯

leetcode 70. 爬楼梯 假设你正在爬楼梯。需要n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 题解: 1.n阶楼梯 2.每次可以爬1或2个台阶 3.问有多少种不同的方法爬到楼顶 示例 1: 输入:2 输出:2 解释:有两种方法可以爬到楼顶。 1. 1 阶 + 1 ...

j_thame_myhome的博客 293

算法leetcode70. 爬楼梯(rust重拳出击)

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

二当家的白帽子 2670

LeetCode-70-爬楼梯

LeetCode-70-爬楼梯 题意描述: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。 示例: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2 阶 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 1. 1 阶 + 1...

花花生的博客 189

PythonCode】力扣Leetcode26~30Python

力扣26-30

weixin_43790276的博客 1740

LeetCode70. 爬楼梯Java & Python

题目: 假设你正在爬楼梯。需要n步你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定n是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1. 1 步 + 1 步 2. 2 步 示例 2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 1. 1 步 + 1 步 + 1...

Implementation 1306

LeetCode——爬楼梯

LeetCode——爬楼梯 题目描述: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1 阶 + 1 阶 2 阶 示例 2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 1 阶 + 1 阶 + 11 阶 + 2 阶 2 阶 + 1 阶 来源:力扣(LeetCode) 链接:https://leetcode-

weixin_45295612的博客 162

leetcode 台阶_LeetCode基础算法题第141篇:爬楼梯问题

技术提高是一个循序渐进的过程,所以我讲的leetcode算法题从最简单的level开始写的,然后&gt; 到中级难度,最后到hard难度全部完。目前我选择C语言,PythonJava作为实现语言,因为这三种语言还是比较典型的。由于篇幅和&gt; 精力有限,其他语言的实现有兴趣的朋友请自己尝试。初级难度说的差不多的时候,我打算再加点其他内容,我可能会从操作系统到协议栈,从分布式&gt; 聊到大数据...

weixin_30671363的博客 482

Leetcode70. 爬楼梯

题目 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2 阶 示例 2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 1. 1 阶 + 1 阶 + 1 ...

码蹄疾 383

2020-05-26-力扣刷刷3-70.爬楼梯

题解一: 动态规划爬楼梯问题可以分而治之,被分解为包含最优子结构的子问题。 分析: 上第i阶的方法有: 1.在第(i-1)阶后向上爬一阶 2.在第(i-2)阶后向上爬二阶 所以到达第i阶的方法总数是到第(i-1)阶和第(i-2)阶的方法数之和。 令dp[i]表示能到达第i阶的方法总数,则有: dp[i]=dp[i-1]+dp[i-2] 伪代码: 输入:输入台阶总数整数n 输出:爬到楼顶的总方法 1.如果n=1,返回1 2.创建长度为n+1的空数组dp,其dp[i]表示能到达第i阶的方法总数 3.初始化.

weixin_45666566的博客 318

LeetCode 70. 爬楼梯

JAVA代码 class Solution { public int climbStairs(int n) { int[] steps = new int[n+1]; if (n==1){ return steps[n]=1; } if (n==2){ return steps...

u010737756的博客 162

PythonCode】力扣Leetcode31~35题Python

力扣31-35

weixin_43790276的博客 1831

【力扣】70. 爬楼梯

题目:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1 阶 + 1 阶 2 阶 示例 2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 3. 1 阶 + 1 阶 + 1 阶 4. 1 阶 + 2 阶 5...

漆黑梦工厂 272

Leetcode_easy 70. 爬楼梯

描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1 阶 + 1 阶 2 阶 示例 2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 1 阶 + 1 阶 + 11 阶 + 2 阶 2 阶 + 1 ...

Melo 195

LeetCode 70.爬楼梯

这是一道比较简单而且很典型的动态规划算法的题目,首先我们来看看题目: 拿到这个题目我们就可以想到动态规划的思想,首先我们来倒着推导,我们要达到第 nnn 阶台阶,必须是从第 n−1n-1n−1 或者 n−2n-2n−2 阶台阶上来的,那么我们假设第 nnn 阶台阶的走法有 f(n)f(n)f(n) 种,那么综上所述 f(n)=f(n−1)+f(n−2)f(n)=f(n-1)+f(n-2)f(n)...

深圳湾刘能的博客 280

【力扣热题100】—— Day13 爬楼梯

假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?n = 22有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶n = 33有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶。

m0_73983707的博客 962

[LeetCode] 70. 爬楼梯

1 题目描述 2 解题思路 方法一:动态规划 不难发现,这个问题可以被分解为一些包含最优子结构的子问题,即它的最优解可以从其子问题的最优解来有效地构建,我们可以使用动态规划来解决这一问题。 第i 阶可以由以下两种方法得到: 在第 (i−1) 阶后向上爬一阶。 在第 (i−2) 阶后向上爬 2 阶。 所以到达第 i 阶的方法总数就是到第 (i−1) 阶和第 (i−2) 阶的方法数之和。dp[...

努力变得不菜的菜鸡的博客 140

力扣(合并区间)

给定一组可能重叠或相邻的整数区间,合并所有重叠或端点相接的区间,返回不重叠的最小区间列表。例如输入 [[1,3],[2,6],[8,10],[15,18]],输出 [[1,6],[8,10],[15,18]]。核心是先按左端点升序排序,再单次线性扫描完成合并,避免暴力两两比较。

weixin_52811458的博客 290
上一篇: leetcode1705. 吃苹果的最大数目
下一篇: leetcode 1609. 奇偶树
姐姐的半熟芝士
博客等级 码龄7年 28粉丝 · 392原创
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值