【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.pswp.cn/news/211724.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/211724.shtml
英文地址,請注明出處:http://en.pswp.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…