【LeetCode:70. 爬楼梯 | 递归 -> 记忆化搜索 -> DP】

在这里插入图片描述

🚀 算法题 🚀

🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀
🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨
🌲 作者简介:硕风和炜,CSDN-Java领域新星创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎
🌲 恭喜你发现一枚宝藏博主,赶快收入囊中吧🌻
🌲 人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯

🚀 算法题 🚀

在这里插入图片描述

在这里插入图片描述

🍔 目录

    • 🚩 题目链接
    • ⛲ 题目描述
    • 🌟 求解思路&实现代码&运行结果
      • ⚡ 递归 -> 记忆化搜索 -> DP
        • 🥦 求解思路
        • 🥦 实现代码 - 递归
        • 🥦 运行结果
        • 🥦 实现代码 - 记忆化搜索
        • 🥦 运行结果
        • 🥦 实现代码 - DP
        • 🥦 运行结果
    • 💬 共勉

🚩 题目链接

  • 70. 爬楼梯

⛲ 题目描述

假设你正在爬楼梯。需要 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

🌟 求解思路&实现代码&运行结果


⚡ 递归 -> 记忆化搜索 -> DP

🥦 求解思路
  1. 每个位置,我们可以向上爬一个楼梯,也可以爬俩个楼梯,存在着重复子问题的过程,可以通过递归来求解,但是递归会时间超限。所以,在此基础上我们可以通过缓存来做,直接通过,最后dp也就呼之欲出啦。
  2. 实现代码如下所示:
🥦 实现代码 - 递归
class Solution {public int climbStairs(int n) {if(n==1) return 1;if(n==2) return 2;return climbStairs(n-1)+climbStairs(n-2);}
}
🥦 运行结果

在这里插入图片描述

🥦 实现代码 - 记忆化搜索
class Solution {private int[] map=new int[50];public int climbStairs(int n) {if(map[n]!=0) return map[n];if(n==1) return map[n]=1;if(n==2) return map[n]=2;return map[n]=climbStairs(n-1)+climbStairs(n-2);}
}
🥦 运行结果

在这里插入图片描述

🥦 实现代码 - DP
class Solution {private int[] map=new int[50];public int climbStairs(int n) {map[1]=1;map[2]=2;for(int i=3;i<=n;i++){map[i]=map[i-1]+map[i-2];}return map[n];}
}
🥦 运行结果

在这里插入图片描述


💬 共勉

最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉!

在这里插入图片描述

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【图片版】计算机组成原理考前复习题【第3章 存储系统-2(Cache)】

目录 前言 考前复习题&#xff08;必记&#xff09; 结尾 前言 在计算机组成原理的学习过程中&#xff0c;我们深入探索了计算机系统概述这一重要领域。计算机系统作为现代科技的核心&#xff0c;是整个计算机科学的基石。我们将学到的知识与理论转化为了能够解决现实问题…

web api性能测试使用wrk

web api性能测试 这边简单的给出shell脚本 注意先安装&#xff1a;wrk和gnuplot #!/bin/bash# Copyright 2020 Lingfei Kong <colin404foxmail.com>. All rights reserved. # Use of this source code is governed by a MIT style # license that can be found in the…

vue 学习 -- day39(vue3 — reactive 对比 ref)

从定义数据角度对比&#xff1a; ref用来定义&#xff1a;基本类型数据。reactive用来定义&#xff1a;对象&#xff08;或数组&#xff09;类型数据。备注&#xff1a;ref也可以用来定义对象&#xff08;或数组&#xff09;类型数据, 它内部会自动通过reactive转为代理对象。从…

如何防止恶意调用和攻击对抖音商品详情API的影响?

防止恶意调用和攻击对抖音商品详情API的影响是开发者和平台必须关注的问题。恶意调用和攻击可能导致服务中断、数据泄露或其他安全问题&#xff0c;对平台和用户造成损失。本文将介绍一些常见的恶意调用和攻击方式&#xff0c;并提出相应的防范措施&#xff0c;以确保抖音商品详…

JavaScript函数概念、声明、调用

JavaScript函数是一段可以重复使用的代码块&#xff0c;用于执行特定的任务。函数封装了一定的逻辑&#xff0c;可以接收输入参数并返回结果&#xff0c;使得代码更加模块化&#xff0c;可读性更高。 函数声明可以使用function关键字来创建&#xff0c;通常包括函数名、参数列…

python画动漫形象(魔法少女小圆晓美焰,super beautiful)

1.源代码 import turtle as te import time WriteStep 15 # 贝塞尔函数的取样次数 Speed 5 Width 600 # 界面宽度 Height 500 # 界面高度 Xh 0 # 记录前一个贝塞尔函数的手柄 Yh 0 def Bezier(p1, p2, t): # 一阶贝塞尔函数 return p1 * (1 - t) p2 * t def Bezier_2(x1…

stu06-VSCode里的常用快捷键

Alt Z&#xff1a;文字自动换行。当一行的文字太长时&#xff0c;可以使用。或者查看→自动换行Alt Shift ↓ &#xff1a;快速复制当前行到下一行Alt Shift ↑ &#xff1a;快速复制当前行到上一行Alt B&#xff1a;在默认浏览器中打开当前.html文件Ctrl Enter&#xf…

深入学习之anaconda、pytorch、cuda安装

文章目录 1. 安装CUDA与CUDNN2. Anaconda安装PyTorch3. notebook添加自己创建的环境4. Anaconda安装相关的库5. GPU测试 1. 安装CUDA与CUDNN csdn大佬安装步骤 【CUDA】cuda安装 &#xff08;windows版&#xff09; 查看此电脑的CUDA版本配置 自己电脑上GPU使用的详细参数 n…

端口复用和重映射

一、端口复用 &#xff08;1&#xff09;端口复用概念 端口复用是将一个I/O赋予多个功能&#xff0c;通过设置I/O的工作模式来切换不同的功能。 STM32有很多的内置外设&#xff0c;这些外设的外部引脚都是与GPIO复用的。也就是说&#xff0c;一个GPIO如果可以复用为内置外设的…

《PySpark大数据分析实战》图书上线啦

《PySpark大数据分析实战》图书上线啦 《PySpark大数据分析实战》图书上线啦特殊的日子关于创作关于数据关于Spark关于PySpark关于图书/专栏 《PySpark大数据分析实战》图书上线啦 特殊的日子 不知不觉一转眼入驻CSDN已经满一年了&#xff0c;这真是一个充满意义的特殊的日子&…

Linux命令详解./configure、make、make install 命令学习

文章来自Linux命令详解./configure、make、make install 命令-CSDN博客 文章目录 1 编译安装命令详解 1.1 简介 1.2 详细解释 1.2.1 configure命令 1.2.2 make 1.2.3 make insatll 1.2.4 configure和make中的DESTDIR和PREFIX区别 1.2.4.1 configure中的PREFIX 1.2.4.2 make ins…

sfp8472学习CDR

1,cdr名称解释 因为光信号传输至一定距离的时候,通常是长距离传输,其波形会出现一定程度的失真,接收端接收到的信号是一个个长短不一的脉冲信号,这个时候在接收端,我们就无法得到我们需要的数据。所以,这个时候就需要有信号的再生,信号的再生功能为再放大、再整形和再…

[足式机器人]Part2 Dr. CAN学习笔记-自动控制原理Ch1-2稳定性分析Stability

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-自动控制原理Ch1-2稳定性分析Stability 0. 序言1. 稳定的分类2. 稳定的对象3. 稳定的系统4. 系统稳定性的讨论5. 补充内容——Transfer Function(传递函数) - nonzero Initial Condition(非零初始…

高防IP防御效果怎么样,和VPN有区别吗

高防IP主要是用于防御网络攻击&#xff0c;可以抵御各种类型的DDoS攻击&#xff0c;隐藏源IP地址&#xff0c;提高网络安全性和用户体验。主要目的是解决外部网络攻击问题&#xff0c;保护网络安全&#xff0c;避免因攻击而导致的业务中断和数据泄露等问题。 而VPN则是一种可以…

ubuntu20 安装docker

一.官网安装文档 &#xff08;基本按官方文档安装&#xff09; Install Docker Engine on Ubuntu | Docker Docs 二.安装步骤 1.docker 需要64位操作系统、linux内核要在3.1以上 #uname -r 2.卸载可能存在的旧版本 #sudo apt-get remove docker docker-engine docker-ce …

《Mamba: Linear-Time Sequence Modeling with Selective State Spaces》阅读笔记

论文标题 《Mamba: Linear-Time Sequence Modeling with Selective State Spaces》 作者 Albert Gu 和 Tri Dao 初读 摘要 Transformer 架构及其核心注意力模块 地位&#xff1a;目前深度学习领域普遍的基础模型。 为了解决 Transformers 在长序列上的计算效率低下的问题…

【193】Java8调用POI 5.2.5生成带图片的Excel文件

本文假定 Excel 文件中保存的是员工数据&#xff0c;并且数据中带有员工的头像。代码支持的图片格式有png、bmp、jpg、gif。但是这里需要注意&#xff0c;有些网站上下载的图片虽然后缀名是 jpg&#xff0c;但是文件二进制内容的格式是 WebP 的。Java8 目前官方api不支持 WebP …

【代码随想录算法训练营-第四天】【链表】24,19, 面试题 02.07,142

24. 两两交换链表中的节点 第一遍-递归-小看了一下题解 思路&#xff1a; 读了两遍题目才理解…相邻节点的交换&#xff0c;这个操作很容易实现&#xff0c;但需要一个tmpNode因为是链表的题目&#xff0c;没开始思考之前先加了dummyNode&#xff0c;还真管用把dummyNode作为…

空气质量数据和气象数据

1、北京、上海、广州的空气质量数据和气象数据 要素如下&#xff1a; 逐日数据 时间跨度&#xff1a;2014.1.1-2022.3.31&#xff0c;共3012条数据 数据质量&#xff1a;98% 城市&#xff1a;只有北京、上海、广州 可以用作论文数据 数据来源&#xff1a;中国环境监测总站…

23. 合并 K 个升序链表 --力扣 --JAVA

题目 给你一个链表数组&#xff0c;每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中&#xff0c;返回合并后的链表。 解题思路 对每个链表的首节点进行比较&#xff0c;获取当前的最小节点&#xff1b;将每个阶段的最小节点进行链接&#xff1b; 代码展示 c…