【玩转动态规划专题】70. 爬楼梯【简单】

【玩转动态规划专题】70. 爬楼梯【简单】

1、力扣链接

https://leetcode.cn/problems/climbing-stairs/description/

2、题目描述

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

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

示例 1:

输入:n = 2
输出:2
解释:有两种方法可以爬到楼顶。

  1. 1 阶 + 1 阶
  2. 2 阶
    示例 2:

输入:n = 3
输出:3
解释:有三种方法可以爬到楼顶。

  1. 1 阶 + 1 阶 + 1 阶
  2. 1 阶 + 2 阶
  3. 2 阶 + 1 阶

提示:

1 <= n <= 45

3、题目分析

动态规划五部曲:
1、确定dp数组(dp table)以及下标的含义
dp[i]以及下标的含义:i阶楼梯有dp[i]种方式到达楼顶
2、确定递推公式
dp[i] = dp[i-1]+dp[i-2];
3、dp数组如何初始化
注意读题dp[0]是不存在的 题目中 1 <= n <= 45
所以初始化时从1开始,虽然设定dp[0] = 1也可以通过,但dp[0] = 1的意义不正确,与dp[i]数组的含义违背【0阶楼梯有1种方式到达楼顶明显不对】
正确初始化:
dp[1] = 1, dp[2]=2
4、确定遍历顺序
从前往后直接遍历
5、举例推导dp数组

4、代码实现

1、Java

class Solution {public int climbStairs(int n) {//dp[i]以及下标的含义:i阶楼梯有dp[i]种方式到达楼顶int[] dp = new int[n+1];dp[1] = 1;dp[2] = 2;if(n < 3){return dp[n];}for(int i=3;i<=n;i++){dp[i] = dp[i-1] + dp[i-2];}return dp[n];}
}

2、C++

class Solution {
public:int climbStairs(int n) {if (n <= 1) return n; // 因为下面直接对dp[2]操作了,防止空指针vector<int> dp(n + 1);dp[1] = 1;dp[2] = 2;for (int i = 3; i <= n; i++) { // 注意i是从3开始的dp[i] = dp[i - 1] + dp[i - 2];}return dp[n];}
};

3、python

class Solution:def climbStairs(self, n: int) -> int:if n <= 1:return ndp = [0] * (n + 1)dp[1] = 1dp[2] = 2for i in range(3, n + 1):dp[i] = dp[i - 1] + dp[i - 2]return dp[n]

4、go

func climbStairs(n int) int {if n == 1 {return 1}dp := make([]int, n+1)dp[1] = 1dp[2] = 2for i := 3; i <= n; i++ {dp[i] = dp[i-1] + dp[i-2]}return dp[n]
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1558286.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

A2P云短信,是什么意思?

中国联通国际公司产品之 A2P 云短信 一站式国际通信服务&#xff0c;助力企业拓展国际业务&#xff0c;轻松触达全球客户 在全球化日益加深的今天&#xff0c;企业要想在竞争激烈的国际市场中脱颖而出&#xff0c;不仅需要优质的产品和服务&#xff0c;更需要高效的沟通渠道来…

系统架构设计师 - 案例特训专题 - 架构设计篇

案例特训专题 - 架构设计篇 架构设计篇软件架构风格 ★★★★质量属性与架构评估 ★★★★★Web 架构综合考查 ★★★★★单台机器到数据库与Web服务器分离应用服务器集群负载均衡技术Session共享机制持久化技术 ORM数据库读写分离化缓存常见缓存技术Redis 集群切片的常见方式R…

DAMA数据管理知识体系(第5章 数据建模和设计)

课本内容 5.1 引言 概要 常见6种数据模式 关系模式多维模式面向对象模式事实模式时间序列模式NoSQL模式按照描述详细程度不同分类 概念模型逻辑模型物理模型包含组件 实体、关系、事实、键、属性业务驱动因素 1&#xff09;提供有关数据的通用词汇表。2&#xff09;获取、记录组…

SQL Server 2022 RTM Cumulative Update #15 发布下载

SQL Server 2022 RTM Cumulative Update #15 发布下载 最新的累积更新 (CU) 下载&#xff0c;包含自 SQL Server 2022 RTM 发布以来的所有更新。 请访问原文链接&#xff1a;https://sysin.org/blog/sql-server-2022/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留…

职称申报材料整理需要注意哪些方面呢?

相信不少小伙伴都想评完职称&#xff0c;最后可以升职加薪领补贴等等&#xff0c;但是不知道申请具体需要哪些材料❓❗ 今天甘建二给大家整理出20个工程专业职称评审的必备材料&#xff0c;必须码住&#xff0c;千万别错过啦 &#xfffd;&#xfffd;01、业绩材料 ⭕反应任现…

PCL 计算点云AABB包围盒

目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.1.1 计算AABB 2.1.2 可视化AABB 2.2完整代码 三、实现效果 PCL点云算法汇总及实战案例汇总的目录地址链接&#xff1a; PCL点云算法与项目实战案例汇总&#xff08;长期更新&#xff09;…

ChatGPT国内中文版镜像网站整理合集(2024/9/30)

一、GPT中文镜像站 ① yixiaai.com 支持GPT4、4o以及o1&#xff0c;支持MJ绘画 ② chat.lify.vip 支持通用全模型&#xff0c;支持文件读取、插件、绘画、AIPPT ③ AI Chat 支持GPT3.5/4&#xff0c;4o以及MJ绘画 1. 什么是镜像站 镜像站&#xff08;Mirror Site&#xff…

如何实现不同VLAN间互通?

问题描述 客户要求不同VLAN的PC机互通&#xff0c;如下图拓扑所示。 此外&#xff0c;仅允许在设备 LSW3 上进行配置修改。 分析 由于所有的PC都在同一个网段&#xff0c;当任何一个设备想要和另一个设备通信时&#xff0c;它会首先根据数据交互的流程广播一个ARP请求报文来获…

微服务架构Gin-etcd-gRPC接合的入门实践

最近在学习微服务&#xff0c;先后学习gRPC、etcd。学习过这两个技术之后&#xff0c;结合Gin框架&#xff0c;简单实现了一个微服务的小demo了。 以下是各技术在微服务架构中的功能。 Gin框架作为网关&#xff0c;外部请求的统一出口。负责将外部的HTTP请求转化为RPC请求&…

量子数字签名概述

我们都知道&#xff0c;基于量子力学原理研究密钥生成和使用的学科称为量子密码学。其内容包括了量子密钥分发、量子秘密共享、量子指纹识别、量子比特承诺、量子货币、秘密通信扩展量子密钥、量子安全计算、量子数字签名、量子隐性传态等。虽然各种技术发展的状态不同&#xf…

YOLOv8实战TT100K中国交通标志检测【数据集+YOLOv8模型+源码+PyQt5界面】

YOLOv8实战TT100k交通标志识别 文章目录 研究背景资源获取1.前言1.1 YOLO 系列&#xff1a;中国交通标志检测领域的璀璨明星1.2 Transformer与注意力机制&#xff1a;为中国交通标志检测注入新活力1.3 中国交通标志检测技术&#xff1a;迎接挑战&#xff0c;砥砺前行1.4 YOLOv8…

『网络游戏』协程回调事件实现Tips弹窗【09】

创建脚本&#xff1a;DynamicWnd.cs 编写脚本&#xff1a;DynamicWnd.cs 修改脚本&#xff1a;WindowRoot.cs - 适配修改错误 修改脚本&#xff1a;GameRoot.cs 拖拽框选 运行项目 - 显示Tips弹窗 本章结束

3.C语言入门:解锁基础概念,动手实现首个C程序

C语言入门&#xff1a;解锁基础概念&#xff0c;动手实现首个C程序 文章目录 C语言入门&#xff1a;解锁基础概念&#xff0c;动手实现首个C程序前言一、源文件和头文件1.1 如何新建项目1.2 添加头文件和源文件 二、第一个C语言程序1.创建一个源文件2.写代码3.运行代码 三、mai…

水库大坝安全监测预警系统守护大坝安全卫士

一、系统背景 近年来&#xff0c;受全球气候变化和人类活动影响&#xff0c;极端天气发生频度强度增加&#xff0c;加之我国城市化进程中&#xff0c;水库下游人口聚集、基础设施密集&#xff0c;对水库工程安全运行提出了新的更高要求。“十四五”以来我国建成并投入使用37593…

微服务架构---认识Zuul

目录 认识Zuul简单的例子 第一个Zuul程序步骤1&#xff1a;创建父工程zuul-1步骤2&#xff1a;创建HystrixController类步骤3&#xff1a;搭建服务消费者eureka-consumer项目&#xff08;1&#xff09;创建一个config包&#xff0c;在config包下新建配置类RestConfig&#xff0…

跨境卖家品牌出海要注意哪些方面

随着目前互联网的发展&#xff0c;市场由线下扩张到全国&#xff0c;再扩张到了全球&#xff0c;但是海外市场和国内并不相同跨境卖家品牌想要出海&#xff0c;需要注意多个方面&#xff0c;以确保能够在国际市场上成功立足并发展。以下是一些关键点&#xff1a; 首先想得拥有…

基于matlab的语音信号处理

摘要 利用所学习的数字信号处理知识&#xff0c;设计了一个有趣的音效处理系统&#xff0c;首先设计了几种不同的滤波器对声音进行滤波处理&#xff0c;分析了时域和频域的变化&#xff0c;比较了经过滤波处理后的声音与原来的声音有何变化。同时设计实现了语音的倒放&#xf…

【HarmonyOS开发笔记 2 】 -- ArkTS语法中的变量与常量

ArkTS是HarmonyOS开发的编程语言 ArkTS语法中的变量 【语法格式】&#xff1a; let 变量名: 类型 值 let&#xff1a;是定义变量的关键字类型&#xff1a; 值数据类型&#xff0c; 常用的数据类型 字符型&#xff08;string&#xff09;、数字型&#xff08;number&#xf…

最新发布!Windows 11 24H2 纯净版:无捆绑,即刻升级!

今日&#xff0c;系统之家小编给大家带来最新的Windows11 24H2纯净版系统下载&#xff0c;该版本系统基于微软官方Windows11 24H2 26100.1882专业版进行离线制作&#xff0c;删除各种流氓软件&#xff0c;确保系统安全纯净&#xff0c;大家日常操作更放心。系统的兼容性出色&am…

人工智能的未来:从知识廉价时代到AI主导国家模式

随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;知识的获取和使用正变得更加普及与廉价。这不仅引发了技术领域的深刻变革&#xff0c;也将对全球社会经济模式产生广泛影响。特别是在《时代》杂志对风险投资巨头维诺德科斯拉&#xff08;Vinod Khosla&#…