python 三步问题

少儿Python每日一题(23):楼梯问题 本次的题目如下所示:楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,走完n阶台阶共有多少种不同的走法?输入格式:输入楼梯的阶梯数n输出格式:输出不同走法的个数输入样例:10输出样例:89这是一道非常经典的题目,我们可以先寻找一下上楼梯的规律。题目告诉了我们,一次可以上1阶,也可以上2阶。如果楼梯只有1阶,那很明显只有1种方法;如果楼梯有2阶,我们可以先跨1阶、再跨1阶,也可以直接跨2阶,有2种方法。当有3个台阶的时候,我们要么先上到第1阶,然后再上2阶; 阅读详情

三步问题


三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,
小孩一次可以上1阶、2阶或3阶。实现一种方法,
计算小孩有多少种上楼梯的方式。结果可能很大,
你需要对结果模1000000007。

示例1:

 输入:n = 3 
 输出:4
 说明: 有四种走法
示例2:

 输入:n = 5
 输出:13
提示:

n范围在[1, 1000000]之间

提供两种题解

在这里插入图片描述

class Solution:
    """
    解题思路一:递归解法
    1.递推公式为 f(n) = f(n-1) + f(n-2) + f(n-3)
    2.添加备忘录 解决递归的重复调用问题
    解题思路二: 非递归解法
    1.类似于斐波那契额数列
    2.假设a, b, c = 1, 2, 4
    3.公式为: d = a + b + c
     """
    
    # 解题思路一
    def __init__(self):
        self.memo = dict()

    def waysToStep(self, n: int) -> int:
        if n == 1 or n == 2:
            return n
        
        if n == 3:
            return 4
        
        if self.memo.get(n):
            return self.memo.get(n)
        
        self.memo[n] = (self.waysToStep(n-1) + self.waysToStep(n-2) + self.waysToStep(n-3)) % 1000000007
        return self.memo[n]
            
    # 解题思路二
    def waysToStep(self, n: int) -> int:
        if n == 1 or n == 2:
            return n
        if n == 3:
            return 4
        # a, b, c 为初始值 d为结果
        a, b, c, d = 1, 2, 4, 0
        for i in range(4, n+1):
            d = (a + b + c) % 1000000007
            a, b, c = b, c, d
        return d

力扣 算法爬楼梯 最最直观的Python 题解 附详细解题思路及注释(超简单 新手友好) 爬楼梯 python 最直观题解 新手友好 阅读详情

相关推荐

Windows下Python调用ONNXRuntime报DLL缺失?三步搞定VC++依赖问题

本文针对Windows下Python调用ONNXRuntime时常见的DLL缺失错误,深入剖析了其根源在于缺少Microsoft Visual C++ Redistributable运行库。文章提供了三步解决法:诊断确认、精准安装VC++ 2015-2022运行库、以及验证与高级排查,帮助开发者彻底解决依赖问题,确保AI项目顺利运行。

weixin_29088655的博客 490

Python学习之第三步

一、运算符 1.赋值运算符= 2.算术运算符+、-、*、/、//(整除)、%、**(乘方和开方) 如果要实现更复杂的数学运算,可导入math模块 (1)求余数的结果的正负号总是与除数保持一致 (2)开几次方就乘以1/几,如36开平方,36**1/2,27开3次方,27**1/3 3.扩展后的赋值运算符 4.索引运算符 索引运算符既可以访问单个元素,也可以访问范围,还可以指定步...

kiko.c的博客 256

别再为Word转PDF表格变形发愁了!Aspose.Words for Java 19.5 保姆级避坑指南

本文详细介绍了使用Aspose.Words for Java 19.5解决Word转PDF时表格变形问题的完整方案。从格式转换原理到实战技巧,涵盖固定表格宽度、禁用自动调整、强制文本换行等核心方法,并提供高级场景应对策略和性能优化建议,帮助开发者高效处理复杂文档转换需求。

weixin_28702105的博客 266

Python每日一练-----三步问题(爬楼梯进阶版)

⛅(day13) 目录 🖍题目: 题目分析: 解题思路: 图解分析 🌈动态规划解法 🌈代码注释 🌈优化 🖍题目: 三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少种上楼梯的方式。结果可能很大,你需要对结果取模1000000007(%1000000007)。(n范围在[1, 1000000]之间) 🌠示例 1: 输入:1 输出:1 说明:只有1种方法上楼梯 🌠示例 2: 输入:2 输出:2 说明:有2种

m0_61791601的博客 5072

Ansys Motor-CAD:概述(EMag、THERM、LAB、MECH)

在这篇博客中,我概述了如何使用 Ansys Motor-CAD 模型、模拟、分析和后处理结果来评估电机性能,并帮助您为您的应用选择优化的电机,并通过电机设计选择实现成本效益和效率。我介绍了各种可用的电机类型、可供选择的物理模块和可配置的多物理选项。E-Mag 物理模块有许多选项卡,涵盖几何创建、材料选择、电磁设置、条件、求解器类型、解决方案模型、耦合设置等的所有设置。热物理模块有许多选项卡,涵盖几何创建、材料选择、热设置、条件、求解器类型、解决方案模型、耦合设置等的所有设置。分析结果的速度相结合。

jkh920184196的博客 1759

Emscripten安装(wasm编译)

5:配置对应环境变量--替换成自己对应的安装路径(2025最新的Emscripten工具链默认使用LLVM/WebAssembly标准工作流,java依赖已经移除了,所以以下java环境不配,需要使用java的手动添加即可---->emsdk install java-8-152-64bit。3:下载相应的依赖库---->emsdk install latest(我这里下的是最新的,如果有指定版本,把latest替换成版本号即可)6:测试是否成功---> emcc- v/em++ -v。

qq_31578301的博客 554

16 个必知必会的 Python 教程,助你高效编程

Python 是一门用途广泛的编程语言,它具有大量的库和框架。有一些鲜为人知的 Python 编码技巧和库可以让你作为开发人员的工作更为轻松,编写代码更高效。 本文中将探讨一些鲜为人知的 Python 技巧,这些技巧非常有用,但并不广为人知。通过学习和使用这些技巧,可以帮你节省时间和精力,并使你的代码更加优雅和高效。那么,让我们深入探索 Python 语言的这些隐藏宝藏吧!

Rocky006的博客 970

用Omniverse Kit开发第一个USD插件:从环境配置到实战案例(Python 3.7版)

本文详细介绍了如何使用NVIDIA Omniverse Kit和Python 3.7开发第一个USD插件,涵盖从环境配置到实战案例的全过程。通过创建可实时同步材质属性的USD插件,开发者可以快速掌握Omniverse开发框架,提升3D内容创作效率。

x8y9z0的博客 586

Python3 三步爬楼梯问题

Python3 三步爬楼梯问题 原题地址 https://leetcode-cn.com/problems/three-steps-problem-lcci/ 题目: 三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少种上楼梯的方式。结果可能很大,你需要对结果模1000000007。 示例1: 输入:n = 3 输出:4 说明: 有...

qq_18138105的博客 1019

【产品经理修炼之道】- 优惠券系统从入门到精通(一)

为了满足企业的优惠券业务,优惠券系统一般需要包含哪些功能?这篇文章里,作者从架构、功能等维度做了拆解,一起来看看吧。此部分主要讲解为满足公司优惠券业务,需要优惠券系统必须包含哪些功能,即优惠券架构图。

xiaoli8748的专栏 1810

Docker - 基本概念、与虚拟机的区别、架构、镜像操作、容器操作、数据卷挂载

p :将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口(配置映射是因为用户只能通过 http 请求访问到服务器,不能直接访问到对应的容器,因此需要服务器端口与容器端口建立映射关系)这里我们有两种启动 redis 的方式,第一种是直接启动 redis ,第二种是以 AOF 持久化的方式启动容器(--appendonly yes),如下图。如果需要持续查看日志信息可以添加 -f 参数,例如:docker logs -f mn ,这里 mn 是自定义容器名称, ctrl + c 可以停止跟踪。

CYK_byte的博客 1万+

三步解决问题:python的PermissionError: [WinError 5] 拒绝访问

三步解决问题:python的PermissionError: [WinError 5] 拒绝访问 问题描述: 1.当你卸载python库的时候,如:pip uninstall pandas 2.当你想要更新python库的时候,如:pip install --upgrade pandas 等等… 就会出现PermissionError: [WinError 5] 问题 废话不多说,分三步完全解决...

qq_33731081的博客 4万+

模型预测控制 (MPC, Model Predictive Control) 算法详解及案例分析

模型预测控制是一种基于模型的控制策略,通过在线求解一个有限时域的优化问题,预测系统的未来行为,并根据预测结果调整控制输入,以实现系统的稳定性和性能优化。

闲人编程的博客 2936

leetcode(67)_面试题 08.01_easy_三步问题_python

面试题 08.01. 三步问题 题目描述: 三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少种上楼梯的方式。结果可能很大,你需要对结果模1000000007。 示例: 输入:n = 3 输出:4 说明: 有四种走法 提示: n范围在[1, 1000000]之间 解法 简单迭代。 代码 class Solution: def waysToStep(self, n: int) -> int: if n == 1:

qq_40137656的博客 151

一文读懂AI协同办公领域发展和趋势

协同办公,又称OA,是指企业内部或外部各类人员之间利用信息技术来进行协作工作的一种形式。这种协作工作既可以由直接员工进行,也可以来自外部的咨询机构、合作伙伴或联营企业。协同办公的优势在于可以对资源进行有效管理和配置,各部门之间可以建立良好的协作关系,跨部门更好地实现资源共享。

女王の专属领地 2361

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

三步问题【python,算法,leetcode】

注意:题目源自 leetcode,链接为 https://leetcode.cn/problems/three-steps-problem-lcci/description/爬楼梯问题:小明一次可以爬 1 个楼梯、2 个楼梯、3 楼梯,问要爬上 n 阶楼梯,小明可以有多少中爬法?解决方案:使用矩阵的幂次方可以快速计算出爬 n 阶楼梯总共有多少种爬法。根据这个公式我们用 Python 进行代码实现。次幂还有很多方法,你可以根据实际需要进行修改。阶楼梯总共的方案数,其中。

xiangfeng666的博客 1032

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

CentOS 7下Python3安装cffi报错?三步搞定libffi依赖问题

本文针对在CentOS 7系统上安装Python3的cffi包时,因缺少libffi开发依赖而导致的'ffi.h: No such file or directory'报错问题,提供了三步解决方案。首先精准定位缺失的libffi-devel包,然后通过yum命令安装完整的开发工具链,最后清理缓存并重试安装。文章不仅提供快速修复步骤,还深入剖析了系统级依赖与Python虚拟环境的关系,并给出了构建标准化环境及使用Docker的进阶建议,帮助开发者从根本上解决此类C扩展编译依赖问题。

grass的博客 418

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Python三步实现汉诺塔问题

递归思想的运用 1)以C盘为中介,从A杆将1至n-1号盘移至B杆; (2)将A杆中剩下的第n号盘移至C杆; (3)以A杆为中介;从B杆将1至n-1号盘移至C杆。 def hanoi(n,a,b,c): if n >0: hanoi(n-1,a,c,b) print("moving from %s to %s" % (a,c)) hanoi(n-1,b,a,c) hanoi(2,'A','B','C') 代码: ...

m0_63057828的博客 1345

【Python】【难度:简单】Leetcode 面试题 08.01. 三步问题

三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少种上楼梯的方式。结果可能很大,你需要对结果模1000000007。 示例1: 输入:n = 3 输出:4 说明: 有四种走法 示例2: 输入:n = 5 输出:13 提示: n范围在[1, 1000000]之间 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/three-steps-problem-lcci 著作权归领扣网络所...

thomashhs12的博客 267

面试题 08.01. 三步问题

面试题 08.01. 三步问题https://leetcode.cn/problems/three-steps-problem-lcci/难度简单80三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少种上楼梯的方式。结果可能很大,你需要对结果模1000000007。示例1: 输入:n = 3 输出:4 说明: 有四种走法 示例2: 输入:n = 5 输出:13 提示:通过次数52,929提交次数144,463...

肥不溜秋大梅子 99

python文件的使用问题_三步搞定 Python 中的文件操作

当程序运行时,变量是保存数据的好方法,但变量、序列以及对象中存储的数据是暂时的,程序结束后就会丢失,如果希望程序结束后数据仍然保持,就需要将数据保存到文件中。Python 提供了内置的文件对象,以及对文件、目录进行操作的内置模块,通过这些技术可以很方便地将数据保存到文件(如文本文件等)中。一、文件的概念在计算机中,文件是以二进制的方式保存在磁盘上的。文件分为文本文件和二进制文件。1、文本文件可以使...

weixin_29369347的博客 243

LeetCode题解(面试08.01):三步问题(Python)

题目:原题链接(简单) 标签:动态规划 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O(N)O(N)O(N) O(1)O(1)O(1) 396ms (56.28%) Ans 2 (Python) Ans 3 (Python) 解法一(动态规划): class Solution: def waysToStep(self, n: int) -> int: if n == 1: return 1

长行 453

Leetcode—— 面试题 08.01. 三步问题

面试题 08.01. 三步问题 三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少种上楼梯的方式。结果可能很大,你需要对结果模1000000007。 示例1: 输入:n = 3 输出:4 说明: 有四种走法 示例2: 输入:n = 5 输出:13 提示: n范围在[1, 1000000]之间 来源:力扣(LeetCod...

suxiaorui的博客 1291

LeetCode面试题 08.01. 三步问题(简单,动态规划,python)

1. 题目 三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少种上楼梯的方式。结果可能很大,你需要对结果模1000000007。 示例1: 输入:n = 3 输出:4 说明: 有四种走法 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/three-steps-problem-...

rosefun96的博客 744

三步解决C语言中struct字节对齐问题,Python进阶篇-struct字节对齐问题

Python进阶篇-struct字节对齐问题Python进阶篇-struct字节对齐问题Python调用C的时候,会传递一些复杂的数据结构,例如结构体,这时候就会遇到各种各样字节对齐的问题。下边所有的例子都是在windows 64bit下的结果。格式字符串说到这里我们就要来说一下python中的格式字符串,格式字符串顾名思义。就是一个字符串中的每一个字符代表一个数据类型。格式字符串由两部分构成,第...

weixin_39929961的博客 745
上一篇: python 从尾到头打印链表
下一篇: python 反转链表
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一叶知秋的BLOG

创作不易 请多多关注

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值