【动态规划-简单】面试题 08.01. 三步问题

leetcode 面试题 08.01. 三步问题(同上楼梯问题,待深究) 【题目】面试题 08.01. 三步问题 三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少种上楼梯的方式。结果可能很大,你需要对结果模1000000007。 示例1: 输入:n = 3 输出:4 说明: 有四种走法 示例2: 输入:n = 5 输出:13 提示: n范围在[1, 1000000]之间 【解题思路1】动态规划 思路和上楼梯问题一致,n层楼梯的走法可以分为三种情况(1:剩余一层楼梯要走然后一步走一层,2:剩余两层楼梯要走,然 阅读详情

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

示例1:

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

示例2:

输入:n = 5
输出:13

提示:

n范围在[1, 1000000]之间

【代码】
【方法1:dp】
在这里插入图片描述在这里插入图片描述cost_n=cost_n-1+cost_n-2+cost_n-3

class Solution:
    def waysToStep(self, n: int) -> int:
        dp=[0,1,2,4]
        for i in range(4,n+1):
            dp.append((dp[i-1]+dp[i-2]+dp[i-3])%1000000007)
        return dp[-1] if n>=4 else dp[n]

【写法2:dp】空间压缩
在这里插入图片描述

class Solution:
    def waysToStep(self, n: int) -> int:
        x,y,z=1,2,4
        if n==1:return x
        if n==2:return y
        if n==3:return z
        for i in range(4,n+1):
            x,y,z=y,z,(x+y+z)%1000000007
        return z
LeetCode《程序员面试金典》面试题 08.01. 三步问题 LeetCode 面试题 08.01. 三步问题题目解题解题一:自上而下递归+制表法解题二:自下而上解题三:矩阵快速幂 题目 题目中给了两个提示:一是取模,二是 n 的范围。 解题 解题一:自上而下递归+制表法 前一个算法,对同一数值,countWays 会调用多次,而这显然是无用功。我们可以利用制表法加以修正。具体做法是,如果计算过 nnn 的值,再次遇到 nnn 就返回缓存值。每次计算一个新值,就把它添加到缓存中。 // javascript var waysToStep = function( 阅读详情

相关推荐

浮点数加法器设计

一.设计内容及其要求 内容 根据浮点数的运算规则和IEEE754标准,实现浮点数的加法运算器。 要求: 浮点数格式:符号位1位,阶码8位,尾数23位 要求该实验能完整的体现浮点数的运算的五个步骤:对阶、尾数求和、规格化、舍入(要求使用对偶舍入)、溢出判断。 二.基本要素 浮点数 浮点数即实数,实数是所有有理数和无理数的集合。它之所以被称作浮点数,是因为小数点在数中的位置并不是固定的。一个浮点数值分为两部分存储:数值以及小数点在数值中的位置。 计算机中的浮点运算的计算结果一般是不确定的,一块芯片的浮点运算

Phoenix_ZengHao的博客 1万+

深度解析CMSIS-5:嵌入式开发的标准骨架与工程实践

在嵌入式软件开发中,面对Cortex-M系列单片机,开发者常困惑于底层寄存器操作与软件可维护性之间的平衡。CMSIS-5作为ARM官方推出的软件接口标准,为处理器内核访问、外设驱动编写和RTOS集成提供了统一的抽象层。它定义了从内核寄存器映射、中断控制到DSP与神经网络推理函数的标准API,其设计遵循单向依赖原则,通过编译器适配、启动文件模板和命名规范,大幅降低跨工具链迁移成本,提升代码复用率。在工业控制、电机驱动、音频处理及边缘AI推理等场景中,工程师基于CMSIS-5可快速构建稳定的固件架构,避免重复造

weixin_34121282的博客 482

TBOX(Telematics Box)在智能网联汽车中的核心功能与应用场景解析

TBOX(Telematics Box)是智能网联汽车的“中枢神经”,基于Android或Linux操作系统,并通过CAN总线与车辆深度交互。它实现了远程控制、车辆状态监控、OTA升级及紧急呼叫(E-CALL)等核心功能,是提升用车安全、便利性与实现车辆持续进化的关键技术组件。

weixin_29158413的博客 805

动态规划走台阶问题

三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少种上楼梯的方式。 解题思路 dp[i]含义:走到i阶台阶一共有dp[i]种方式 dp数组初始化: dp[0]:0层台阶?没有意义,不用多管,直接赋值为null dp[1]:1层台阶,只有1种方式 dp[2]:2层台阶,有1+1、2一共2种方式,故dp[2]=2 dp[3]:3层台阶,有1+1+1、1+2、2+1、3一共4种方式,故dp[3]=4 所以dp = [null, 1, 2, 4] 递推公

qq_52819902的博客 657

Code Composer Studio 12.0.0版本 官方例程导入实战指南

本文详细介绍了在Code Composer Studio 12.0.0版本中,如何利用内置的Resource Explorer工具高效导入官方例程的完整实战指南。通过分步讲解定位开发板、导入工程、配置编译器及调试验证等关键操作,帮助开发者快速上手TI微控制器开发,避免常见错误,有效提升学习与开发效率。

weixin_29169899的博客 123

彻底解决0x80070005错误代码:全面分析与实战指南

0x80070005错误代码虽然令人头疼,但通过上述方法,我们完全有能力将其攻克。从检查磁盘空间、设置账号权限,到运行疑难解答和系统文件检查器,再到调整相关服务状态,每一步都是解决这一问题的关键。希望本文能为你提供有力的帮助,让你在使用Windows系统的过程中更加顺畅无忧。

nntxthml的博客 6939

Python——动态规划

目录什么是动态规划参考资料 什么是动态规划 参考资料 告别动态规划,连刷 40 道题,我总结了这些套路,看不懂你打我(万字长文)

gy的博客 1181

保姆级教程:用微信小程序+OneNet MQTT API,5分钟搞定温湿度数据实时展示

本文提供了一份详细的教程,教你如何利用微信小程序和OneNet MQTT API在5分钟内实现温湿度数据的实时展示。从OneNet平台配置到小程序数据绑定,手把手指导零基础开发者快速搭建监控系统,涵盖API调用、数据解析和界面设计等关键步骤。

weixin_30298497的博客 370

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

Docker+vLLM内网离线部署Qwen3 流程

本文介绍了在CentOS 7系统下进行VLLM容器化部署Qwen3-32B大模型的内网离线方案。首先需准备Nvidia显卡驱动、CUDA 12.4和Docker环境。通过联网机器拉取vllm/vllm-openai镜像并导入内网服务器,同时从魔塔社区下载模型文件。部署时使用docker run命令启动容器,配置了GPU资源、内存共享、端口映射等参数,特别指定了模型路径、并行计算、内存利用率等关键参数。该方案实现了大模型在内网环境的安全高效部署,适用于需要离线运行的AI推理场景。

qq_42881308的博客 1043

装配完整性检查系统:基于YOLOv10的螺丝/零件缺失自动检测(含UI界面与完整代码)

建议自行采集装配场景数据,标注缺失螺丝、错误零件等,模拟真实缺陷。手机/工业相机采集图像;使用LabelImg进行目标标注;转换为 YOLO 格式。本文构建了一个完整的装配完整性检测系统,基于 YOLOv10 实现高精度螺丝缺失检测,并使用 PyQt5 构建了图形界面,实现一键导入与可视化检测流程,适用于工业质检自动化部署。项目可灵活扩展至零件缺失、错装、错位、顺序错误等检测场景,是深度学习在制造业中落地的典型应用案例之一。

YOLO 703

【动态规划】 LeetCode #面试题 08.01. 三步问题

题目链接: LeetCode #面试题 08.01. 三步问题 题目描述: #面试题 08.01. 三步问题 三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少种上楼梯的方式。结果可能很大,你需要对结果模1000000007。 示例1: 输入:n = 3 输出:4 说明: 有四种走法 示例2: 输入:n = 5 输出:13 提示: n范围在[1, 1000000]之间 通过次数7,771 | 提交次数22,802 分析: 1.这个题是爬楼梯问题的变形

Code_Yilia的博客 350

FastAPI 高级特性:同异步路由函数、依赖注入与后台任务

在现代 Web 开发中,高效的性能和简洁的代码结构是至关重要的。FastAPI 作为一个现代、快速(高性能)的 Web 框架,凭借其对异步编程的原生支持和直观的依赖注入系统,迅速成为开发者的热门选择。在本文中,将深入探讨 `FastAPI` 中的几个核心概念:同异步函数的区别、`Depends` 依赖以及后台任务。

qq_43629857的博客 204

动态规划01 三步问题[C++]

上机题目练习整理,本篇作为动态规划的代码,因为做题入门很少找到带图的讲解(难道是因为太简单,所以没有人嘛),所以干脆自己写一份,供小伙伴们参考~🥝🥝

weixin_42789937的博客 1362

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

LeetCode-面试题08.01 三步问题 C/C++实现 超详细思路及过程[E]

🐟记录一句:上一篇博客这里好像没改,那就不改了。

Jammingpro 1237

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

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

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

suxiaorui的博客 1294

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

面试题 08.01. 三步问题 ( dp )

LeetCode: 面试题 08.01. 三步问题 打表找规律 class Solution { int cnt = 0; public int waysToStep(int n) { for(int i = 1; i < 10; i++){ dfs(i); System.out.println(i + " -- " + cnt); cnt = 0; } ret

lankerens 377

Leetcode 面试题 08.01. 三步问题

Leetcode 面试题 08.01. 三步问题1、问题分析2、问题解决3、总结 1、问题分析 题目链接:https://leetcode-cn.com/problems/three-steps-problem-lcci/   可以使用动态规划解决,状态转移方程是:dp[i] = dp[i-1] + dp[i-2] + dp[i-3],最重要的还是数据太大,导致的溢出问题。代码我已经进行了详细的注释,理解应该没有问题,读者可以作为参考,如果看不懂(可以多看几遍),欢迎留言哦!我看到会解答一下。 2、问题解决

珍惜 8851

动态规划|【斐波那契数列模型 】|面试题08.01三步问题

动态规划|面试题08.01三步问题

weixin_74197067的博客 1051

leetcode:面试题 08.01. 三步问题

【代码】leetcode:面试题 08.01. 三步问题。

2301_81570594的博客 521

【动态规划篇】面试题 08.01. 三步问题

面试题08.01.三步问题

2301_81290732的博客 476

1.2 斐波那契数列模型:LeetCode 面试题 08.01. 三步问题

1.2 斐波那契数列模型:LeetCode 面试题 08.01. 三步问题

shuibuxingaaa的博客 602

【动态规划】面试题 08.01. 三步问题

观察状态转移方程.我们发现,虽然我们开辟了n个大小的空间,但我们计算第i个的时候,只会用到前三个的值,这意味着在[0,i-4]这段区间中的数组空间都是浪费的.所以我们可以。观察我们的状态转移方程,我们会发现,我们需要的值是i的前三个(i-1,i-2,i-3).所以当i=3时,最小位(i-3)此时为0.空间,但我们计算第i个的时候,只会用到前三个的值,这意味着在[0,i-4]这段区间中的数组空间都是浪费的.所以我们可以。所以如果我想要到台阶4的方法数就等于由台阶1的方法数+台阶2的方法数+台阶3的方法数.

qq_62839589的博客 332

动态规划 —— 斐波那契数列模型-三步问题

当到了第一个台阶时那么情况就和之前的从第0个台阶到第3给台阶有几步相同。面试题 08.01. 三步问题 - 力扣(LeetCode)等于前3个台阶的次数相加。

hedhjd的博客 1万+

【LeetCode每日一题】——面试题 08.01.三步问题

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

IronmanJay 552

动态规划(算法)---02.斐波那契数列模型_三步问题

面试题 08.01. 三步问题 - 力扣(LeetCode)

2302_76267737的博客 1084
上一篇: 【动态规划-简单】1025. 除数博弈
下一篇: 【无标题】剑指 Offer 10- II. 青蛙跳台阶问题
菜菜2022
博客等级 码龄9年 67粉丝 1033原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值