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

news/2025/2/6 1:07:48/

在这里插入图片描述

🎈归属专栏:深夜咖啡配算法
🚗个人主页:Jammingpro
🐟记录一句:摆了一个周末了,不能摆了,努力起来!!

文章目录

  • LeetCode-面试题08.01 三步问题
    • 🚗题目
      • 🚆题目描述
      • 🚆题目示例
      • 🚆提示
    • 🚗题解
      • 🚆动态规划法

LeetCode-面试题08.01 三步问题

标签:动态规划、记忆化搜索、数学


🚗题目

🚆题目描述

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

🚆题目示例

示例 1:

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

示例 2:

输入:n = 5
输出:13

🚆提示

n范围在[1, 1000000]之间


🚗题解

🚆动态规划法

这一题与70.爬楼梯问题类似【传送门】,当我要爬到第n个台阶时,我可以是从n-1号台阶爬1个台阶后到达,可以是从n-2号台阶爬2个台阶后到达,还可以是从n-3号台阶爬3个台阶后到达。因而,可以得到递推公式 T n T_{n} Tn= T n − 3 T_{n-3} Tn3+ T n − 2 T_{n-2} Tn2+ T n − 3 T_{n-3} Tn3。从题意可知, T 0 T_{0} T0=1, T 1 T_{1} T1=1, T 2 T_{2} T2=2。得到初始化的几个数值及递推公式,我们就可以实现代码了👇

class Solution {
public:int waysToStep(int n) {const int MOD = 1000000007;if(n == 0 || n == 1) return 1;if(n == 2) return 2;int t0 = 1, t1 = 1, t2 = 2;for(int i = 3; i <= n; i++){int tmp = ((t0 + t1) % MOD + t2) % MOD;t0 = t1;t1 = t2;t2 = tmp;}return t2;}
};

文章结语:这道题是一道简单题,算是动态规划入门类题目了!!
🎈欢迎进入深夜咖啡配算法专栏,查看更多文章。
如果上述内容有任何问题,欢迎在下方留言区指正b( ̄▽ ̄)d


http://www.ppmy.cn/news/1246482.html

相关文章

hadoop集群环境搭建和常用命令

搭建过程 1.集群配置 cat /etc/hosts 2.步骤安装 Java是否安装 which java 或者 echo $JAVA_HOME 3.解压安装包 tar -zxvf 4.修改配置文件 cd $HADOOP_HOME/etc/hadoop/ 下面是需要修改的配置文件 hadoop-env.sh yarn-env.sh hdfs-site.xml core-site.xml mapred-site.xml yar…

vue3使用高德地图获取经纬度

首先 安装依赖 cnpm i amap/amap-jsapi-loader --save <script setup> import { onMounted, reactive, ref } from vue import AMapLoader from amap/amap-jsapi-loaderconst map ref(null) const mapData reactive({map: {},keyword: ,selectedLocation: {},selecte…

代码之难题:程序员的解密之路

前言&#xff1a;代码中的谜团 编程世界中充满了各种难题&#xff0c;就如同一道道难以捉摸的谜团。程序员们在日常工作中常常需要面对如Bug、性能优化、跨平台兼容性等技术难题&#xff0c;而解决这些问题往往需要像解密高手一样的智慧和技巧。 1. Bug调试&#xff1a;追踪隐…

my.ini添加了一句后又删除了,重启却失败的解决办法

背景&#xff1a;添加了一句&#xff0c;然后保存了&#xff0c;之后打开删掉了&#xff0c;结果就无法启动了&#xff0c;最后另存为ANSI格式&#xff0c;再把这个格式文件覆盖my.ini即可解决

【LeeCode】209.长度最小的子数组

给定一个含有 n 个正整数的数组和一个正整数 s &#xff0c;找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组&#xff0c;并返回其长度。如果不存在符合条件的子数组&#xff0c;返回 0。 示例&#xff1a; 输入&#xff1a;s 7, nums [2,3,1,2,4,3] 输出&#xff1a;…

深度学习黎明时期的LeNet:揭开卷积神经网络的序幕

在深度学习的历史长河中&#xff0c;Yann LeCun 的 LeNet 是一个里程碑式的研究成果&#xff0c;它为后来的卷积神经网络&#xff08;Convolutional Neural Networks&#xff0c;CNN&#xff09;的发展奠定了基础。LeNet 的诞生标志着深度学习黎明时期的到来&#xff0c;为人工…

算法刷题-动态规划3(未完待续---------

算法刷题-动态规划3&#xff09; 01背包问题最后一块石头的重量 01背包问题 一篇文章吃透背包问题 大佬讲解什么是背包问题 问题分析&#xff1a; 面对这么多的物品&#xff0c; 选择一个个地来装入背包&#xff0c;背包的承重量不断地增加&#xff0c;二维数组中&#xff0c;…

【Web】[GKCTF 2021]easycms

直接点击登录按钮没有反应 扫目录扫出来/admin.php 访问 弱口令admin 12345直接登录成功 点开设计--主题--自定义 编辑页头&#xff0c;类型选择php源代码 点保存显示权限不够 设计--组件--素材库 先随便上传一个文件&#xff0c;之后改文件名称为../../../../../system/tmp…