代碼隨想錄算法訓練營day41 | 509. 斐波那契數、70. 爬樓梯、746. 使用最小花費爬樓梯

理論基礎

動態規劃中每一個狀態一定是由上一個狀態推導出來的,這一點就區分于貪心,貪心沒有狀態推導,而是從局部直接選最優的

動態規劃的解題步驟

  • 確定dp數組(dp table)以及下標的含義
  • 確定遞推公式
  • dp數組如何初始化
  • 確定遍歷順序
  • 舉例推導dp數組

動態規劃應該如何debug?

? ? ? 找問題的最好方式就是把dp數組打印出來,看看究竟是不是按照自己思路推導的!

509. 斐波那契數

  • 確定dp數組以及下標的含義:dp[i]的定義為:第i個數的斐波那契數值是dp[i]
  • 確定遞推公式:dp[i] = dp[i - 1] + dp[i - 2]
  • dp數組如何初始化:dp[0] = 0 dp[1] = 1
  • 確定遍歷順序:從前向后
  • 舉例推導dp數組
class Solution:def fib(self, n: int) -> int:if n <= 1:return ndp = [0, 1]for i in range(2, n+1):total = dp[0] + dp[1]dp[0] = dp[1]dp[1] = totalreturn dp[1]

70. 爬樓梯

  • 確定dp數組以及下標的含義:dp[i]為爬上i階樓梯有多少方法
  • 確定遞推公式:dp[i] = dp[i-1] + dp[i-2]
  • dp數組如何初始化:dp[1] = 1 dp[2] = 2
  • 確定遍歷順序:從前向后遍歷
  • 舉例推導dp數組
class Solution:def climbStairs(self, n: int) -> int:if n <= 2:return ndp = [1, 2]for i in range(3, n+1):total = dp[0] + dp[1]dp[0] = dp[1]dp[1] = totalreturn dp[1]

746. 使用最小花費爬樓梯

  • 確定dp數組以及下標的含義:dp[i]代表爬上第i個臺階的最低花費
  • 確定遞推公式:dp[i] = min(dp[i-1]+cost[i-1], dp[i-2]+cost[i-2])
  • dp數組如何初始化:dp[0] = 0 dp[1] = 0
  • 確定遍歷順序:從前向后遍歷
  • 舉例推導dp數組
class Solution:def minCostClimbingStairs(self, cost: List[int]) -> int:if len(cost) <= 1:return 0dp = [0, 0]for i in range(2, len(cost)+1):total = min(dp[1]+cost[i-1], dp[0]+cost[i-2])dp[0] = dp[1]dp[1] = totalreturn dp[1]

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/19530.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/19530.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/19530.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

怎么看自己電腦的配置?提升電腦的使用效率

了解自己電腦的配置是非常重要的&#xff0c;它可以幫助您了解電腦的性能水平&#xff0c;從而更好地選擇適合的軟件和游戲&#xff0c;或者進行系統升級和維護。然而&#xff0c;許多用戶可能不知道怎么看自己電腦的配置信息。本文將介紹三種簡單的方法&#xff0c;幫助您輕松…

android studio修改字體大小

android studio修改菜單欄、工具欄字體大小 android studio修改編輯框字體大小

常見制氮機的規格的及其特點介紹

制氮機根據其產氣量、應用領域和設計特點&#xff0c;可以分為多種規格&#xff0c;滿足不同行業的具體需求。以下是一些常見制氮機的規格的及其特點介紹&#xff1a; 制氮機的規格通常以其每小時制氮量進行分類。常見的規格有10L制氮機、50L制氮機、100L制氮機、500L制氮機以及…

復習leetcode第二題:兩數相加

本文會給出筆者自己的解答&#xff08;代碼較為冗余&#xff0c;其實就是屎山代碼&#xff09;以及優秀代碼的解析 下圖是題目 解法1&#xff08;筆者所使用的辦法&#xff09;&#xff1a; 解題思路&#xff1a; 以下思路是基于示例1&#xff08;上圖&#xff09;思考的 步驟…

2024年終端安全管理系統最新排名(2024終端安全管理軟件TOP5)

在2024年&#xff0c;隨著企業數字化轉型的加速和網絡安全威脅的日益嚴峻&#xff0c;終端安全管理系統的重要性愈發凸顯。終端作為企業數據交互的關鍵節點&#xff0c;其安全性直接關系到企業的運營和數據的完整性。因此&#xff0c;各大終端安全管理系統廠商紛紛推出新的產品…

基于Vue+Node.js的購物網站設計與實現-計算機畢業設計源碼28500

摘 要 近年來&#xff0c;隨著移動互聯網的快速發展&#xff0c;電子商務越來越受到網民們的歡迎&#xff0c;電子商務對國家經濟的發展也起著越來越重要的作用。簡單的流程、便捷可靠的支付方式、快捷暢通的物流快遞、安全的信息保護都使得電子商務越來越贏得網民們的青睞。現…

數據庫系統概念(第七周 第一堂)(E-R模型)

目錄 前言 基本概念 觀點與模型 作用與要求 E-R模型元素 實體&#xff08;entity&#xff09; 實體集&#xff08;entity set&#xff09; 屬性&#xff08;attribute&#xff09; 域&#xff08;domain&#xff09; 碼 &#xff08;key&#xff09; 聯系 &#x…

虛擬現實環境下的遠程教育和智能評估系統(五)

查閱相關VR眼動注意力聯合教育學相關論文 1.Exploring Eye Gaze Visualization Techniques for Identifying Distracted Students in Educational VR&#xff08;IEEE VR 2020&#xff09; 摘要&#xff1a;我們提出了一種架構&#xff0c;使VR教學代理能夠響應眼動追蹤監控…

Android HIDL接口添加

一.HIDL介紹 HIDL的全稱是HAL interface definition language&#xff08;硬件抽象層接口定義語言&#xff09;&#xff0c;是Android Framework 與Android HAL之間的接口。HIDL 旨在用于進程間通信 (IPC)&#xff0c;進程之間的通信 采用 Binder 機制。 二.HIDL 與AIDL 的對…

JVM之【運行時數據區1】

JVM簡圖 運行時數據區簡圖 一、程序計數器&#xff08;Program Counter Register&#xff09; 1.程序計數器是什么&#xff1f; 程序計數器是JVM內存模型中的一部分&#xff0c;它可以看作是一個指針&#xff0c;指向當前線程所執行的字節碼指令的地址。每個線程在執行過程中…

Python魔法之旅-魔法方法(04)

目錄 一、概述 1、定義 2、作用 二、主要應用場景 1、構造和析構 2、操作符重載 3、字符串和表示 4、容器管理 5、可調用對象 6、上下文管理 7、屬性訪問和描述符 8、迭代器和生成器 9、數值類型 10、復制和序列化 11、自定義元類行為 12、自定義類行為 13、類…

Tensorflow入門實戰 P02-彩色圖片分類

目錄 1、序言 2、主要代碼 3、運行結果展示 &#xff08;1&#xff09;展示cifar10里面的20張圖片 &#xff08;2&#xff09;預測的圖片 &#xff08;3&#xff09;模型評估 本文為&#x1f517;365天深度學習訓練營 中的學習記錄博客&#x1f356; 原作者&#xff1a;K…

postgressql——ReadBuffer_common函數(7)

PostgreSQL中ReadBuffer_common函數 數據結構 BufferDesc 共享緩沖區的共享描述符(狀態)數據 typedef struct BufferDesc {//buffer tagBufferTag tag; /* ID of page contained in buffer *///buffer索引編號(0開始)int buf_id; /* buffers i…

大語言模型(一)OLMo

一、簡介 OLMo 是由AI2 發布的大語言模型以及構建框架,與大多數之前的嘗試只發布模型權重和推理代碼不同,OLMo 開源了整個框架,包括訓練數據、訓練代碼以及模型評估代碼。 OLMo框架包括構建和研究語言模型所需的工具和資源。對于訓練和建模,它包括完整的模型權重、訓練代…

SZJG-離線環境成功安裝Python和pip

在離線環境下安裝Python和pip&#xff0c;可以按照以下步驟進行。假設你已經下載了Python的安裝包 (Python-3.10.13.tgz)。 步驟 1&#xff1a;準備安裝包 將 Python-3.10.13.tgz 拷貝到目標機器上的一個目錄中&#xff0c;例如 /home/user/。 步驟 2&#xff1a;解壓安裝包…

4萬字長文讓人看懂ElementUI面試題及參考答案

ElementUI是什么?請簡述其主要特點。 ElementUI是一個基于Vue.js的桌面端組件庫,由餓了么團隊開發并維護。它旨在為開發人員提供一套用于構建網頁應用程序的高質量UI組件。ElementUI遵循Vue.js的設計思想,使得開發者可以快速地構建出風格統一、功能豐富的界面。 主要特點:…

水經微圖PC版4.3.10發布

讓GIS更簡單高效&#xff0c;讓地圖更豐富及時&#xff01; 水經微圖&#xff08;以下簡稱“微圖”&#xff09;新版已上線&#xff0c;在該版本中主要新增了天地圖歷史影像查看功能&#xff0c;以及其它功能的優化。 當前版本 當前版本號為&#xff1a;4.3.10 如果你發現該…

Pytorch反向傳播算法(Back Propagation)

一&#xff1a;revise 我們在最開始提出一個線性模型。 x為我們的輸入&#xff0c;w為權重。相乘的結果是我們對y的預測值。 那我們在訓練時就是對這個權重w進行更新&#xff0c;就需要用到上一章提到的梯度下降算法&#xff0c;不斷更新w。但是此時注意不是用y的預測值對w進…

linux centos nfs掛載兩臺服務器掛載統一磁盤目錄權限問題

查看用戶id id 用戶名另一臺為 修改uid和gid為相同id&#xff0c;添加附加組 usermod -u500 -Gwheel epms groupmod -g500 epms

網絡協議。

一、流程案例 接下來揭秘我要說的大事情&#xff0c;“雙十一”。這和我們要講的網絡協議有什么關系呢&#xff1f; 在經濟學領域&#xff0c;有個倫納德里德&#xff08;Leonard E. Read&#xff09;創作的《鉛筆的故事》。這個故事通過一個鉛筆的誕生過程&#xff0c;來講述…