LeetCode-热题100:70. 爬楼梯

news/2024/6/16 3:24:34 标签: leetcode, 算法, golang, 数据结构, 动态规划

题目描述

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

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

示例 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

代码及注释

func climbStairs(n int) int {
    // 创建一个动态规划数组dp,长度为n
    dp := make([]int, n)
    
    // 如果楼梯数n为1,直接返回1
    if n == 1 {
        return 1
    }
    
    // 如果楼梯数n为2,直接返回2
    if n == 2 {
        return 2
    }
    
    // 初始化dp数组的前两个值
    dp[0], dp[1] = 1, 2
    
    // 动态规划求解爬楼梯的路径数量
    for i := 2; i < n; i++ {
        dp[i] = dp[i - 1] + dp[i - 2]
    }
    
    // 返回达到顶部的不同路径数量
    return dp[n - 1]
}

代码解释

这里使用动态规划的思想来解决问题:

  • dp[i]表示爬到第i级楼梯的不同路径数量。
  • 初始化dp[0] = 1dp[1] = 2是因为爬1级楼梯有1种方法,爬2级楼梯有2种方法。
  • 对于第i级楼梯,它可以由前一级或前两级楼梯爬上来,所以dp[i] = dp[i - 1] + dp[i - 2]

最后,返回dp[n - 1],即爬到第n级楼梯的不同路径数量。


http://www.niftyadmin.cn/n/5472277.html

相关文章

【DevOps工具篇】身份验证管理及SSO登录:Keycloak

【DevOps工具篇】身份验证管理及SSO登录:Keycloak 目录 【DevOps工具篇】身份验证管理及SSO登录:Keycloak理解身份验证身份验证的业务维度身份验证方法的演变单一登录(SSO)Keycloak为什么选择Keycloak?推荐超级课程: Docker快速入门到精通Kubernetes入门到大师通关课AWS云…

学习网安(21)

第20章存在疑问&#xff0c;待开学后和老师求证改动后发布 中间件之一——apache 先说一下http协议——超文本传输协议 全称为&#xff1a;Hyper Text Transfor Protocol 用途&#xff1a;让用户通过浏览器发送请求到服务器端&#xff0c;接收客户端返回的数据&#xff0c;…

安装Redis Windows版

一、安装Redis Windows版 1.1、下载安装包 官网&#xff1a;https://github.com/microsoftarchive/redis/releases 我分享的链接&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1Lg-b_k02XO6UAXMHxGD0FA?pwdyyds 提取码&#xff1a;yyds 1.2、安装 &#xff08;1&a…

基于Springboot企业客户信息反馈平台

采用技术 基于Springboot企业客户信息反馈平台的设计与实现~ 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBootMyBatis 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 页面展示效果 功能清单 平台功能 首页 技术文档 问题信息 个人中心…

pip和conda 设置安装源

pip和conda 设置安装源 conda查看 channels添加 channels移除 channelschannels 配置文件 pip查看 index-url添加 index-url移除 index-urlindex-url 配置文件 常用源 conda 查看 channels conda config --show channels添加 channels conda config --add channels https:/…

Linux从入门到精通 --- 1.初始Linux

文章目录 第一章&#xff1a;1.1 Linux的诞生1.2 Linux系统内核1.3 Linux系统发行版 第一章&#xff1a; 1.1 Linux的诞生 1991年由林纳斯 托瓦兹创立并发展至今称为服务器操作系统领域的核心系统。 1.2 Linux系统内核 Linux内核提供了系统的主要功能&#xff0c;甚至是开源…

数据结构——顺序表(C语言)

目录 一、顺序表概念 二、顺序表分类 1.静态顺序表 2.动态顺序表 三、顺序表的实现 1.顺序表的结构体定义 2. 顺序表初始化 3.顺序表销毁 4.顺序表的检验 5.顺序表打印 6.顺序表扩容 7.顺序表尾插与头插 8.尾删与头删 9.在pos处插入数据 10.在pos处删除数据 11.查找数据 …

输入nvidia-smi查看的GPU的容量和在docker里输入df -Th查看的shm有联系吗

nvidia-smi命令用于查看GPU的状态和相关信息&#xff0c;而df -Th命令用于查看文件系统的磁盘使用情况&#xff0c;包括共享内存&#xff08;shm&#xff09;的使用情况。 这两个命令提供了不同层面的信息&#xff0c;因此它们之间没有直接的联系。具体来说&#xff1a; nvidi…