leetcode:746. 使用最小花費爬樓梯

學習要點

  1. 動態規劃正著推
  2. 動態規劃倒著推
  3. 理解遞歸
  4. 在動態規劃與純遞歸的類比分析中體會兩者各自的特點

題目鏈接

????????746. 使用最小花費爬樓梯 - 力扣(LeetCode)

題目描述

解法1:動態規劃倒著推

// dp[i]--->從第i階樓梯到達樓頂最小花費int minCostClimbingStairs(vector<int>& cost) {// dp[i]--->從第i階樓梯到達樓頂最小花費int n = cost.size();vector<int> dp(n);dp[n-1] = cost[n-1];dp[n-2] = cost[n-2];for(int i = n-3;i>=0;i--){dp[i] = min(dp[i+1] , dp[i+2]) + cost[i];}return min(dp[0],dp[1]);}

解法2:動態規劃正著推

//dp[i]--->到達第i階樓梯的最小花費
int minCostClimbingStairs(vector<int>& cost) {int n = cost.size();vector<int> dp(n + 1);dp[0] = 0;dp[1] = 0;for (int i = 2; i < (n + 1); i++){dp[i] = min((dp[i - 1] + cost[i - 1]), (dp[i - 2] + cost[i - 2]));}return dp[n];
}

解法分析

  1. 兩種解法都是采用動態規劃思想去解決問題,也就是說采用動態規劃方法去解決問題時,不止一種思考方式
  2. 動態規劃法去解決問題時,宏觀邏輯是,利用計算機的記憶,把每種情況都記住,然后一步步迭代,這次迭代的過程,依賴上次迭代的結果,上次迭代的結果被計算機存儲了。
  3. 可以說動態規劃是在一步步的暴力窮舉,只有走了第一步,才能走好第二步。只有走了第二步,才能走好第三步
  4. 動態規劃在記什么:在記狀態,你決定如何考慮狀態,就決定你要怎么走
  5. 最好怎么考慮狀態:狀態最少的狀態,就是解決問題最好的狀態

解法3:純遞歸

// 純遞歸-->通過樣例259/285,超出時間限制int dfs(int n,vector<int>& cost){if(n == 0) return 0;if(n == 1) return 0;int num_1 = dfs(n-1,cost) + cost[n-1];int num_2 = dfs(n-2,cost) + cost[n-2];return min(num_1,num_2);}int minCostClimbingStairs(vector<int>& cost) {int n = cost.size();int m1 = dfs(n-1,cost) + cost[n-1];int m2 = dfs(n-2,cost) + cost[n-2];return min(m1,m2);}

動態規劃與遞歸類比

  1. 兩者都是從最小或者說最直接的問題開始進行處理,一步步處理問題,達到最終目的
  2. 動態規劃的問題處理過程是指定迭代結構,時間復雜度為O(n)
  3. 遞歸的問題處理過程是遞歸樹結構,有太多的重復計算,造成時間復雜度膨脹
  4. 遞歸往往因為時間復雜度太高,而無法處理大范圍的動態規劃問題以及其它大范圍的問題
  5. 遞歸能處理的問題,動態規劃未必能輕松處理。例如leetcode:21. 合并兩個有序鏈表-CSDN博客如果使用動態規劃,實在無從下手。

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

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

相關文章

汽車毫米波雷達增強感知:基于相干擴展和高級 IAA 的超分辨率距離和角度估計.

重慶西南大學毫米波雷達團隊在IEEE Transactions on Consumer Electronics 上發表的一篇論文&#xff1a;《基于相干擴展和高級 IAA 的超分辨率距離和角度估計》。 本文深入研究了毫米波&#xff08;mmWave&#xff09;調頻連續波雷達距離和角度的超分辨問題。首先&#xff0c;…

軟件更新 | 從數據到模型,全面升級!TSMaster新版助力汽車研發新突破

為滿足汽車電子開發領域日益增長的測試與仿真需求&#xff0c;TSMaster最新版本聚焦實車數據采集、MBD智能建模與新API擴展三大核心功能。無論您是進行車載網絡測試、ECU開發還是自動化驗證&#xff0c;新版本都能為您提供更高效、更可靠的解決方案&#xff01; TSMaster 2025.…

PDF-XSS

前言&#xff1a; PDF文件是一種復雜的文檔格式&#xff0c;由一系列對象組成&#xff0c;包括字體、圖像、頁面內容等。PDF文件支持嵌入JavaScript代碼&#xff0c;這使得PDF文件不僅可以顯示靜態內容&#xff0c;還可以執行動態操作。這種特性被攻擊者利用來嵌入惡意腳本代碼…

MySQL 表關聯關系詳解

MySQL 表關聯關系詳解 本文檔詳細列舉了MySQL中常見的表關聯關系場景以及對應的SQL語句示例。 1. 一對一關系 (One-to-One) 場景&#xff1a;用戶表和用戶詳情表 一個用戶對應一個用戶詳情通常用于將大表拆分&#xff0c;提高查詢性能 -- 創建用戶表 CREATE TABLE users (…

kubernetes(k8s)集群部署(超詳細)

k8s部署 kubernetes集群圖例kubernetes 安裝倉庫初始化1、創建云主機2、初始化私有倉庫kube-master安裝1、防火墻相關配置2、配置yum倉庫(跳板機)3、安裝軟件包(master)4、鏡像導入私有倉庫5、Tab鍵設置6、安裝代理軟件包7、配置內核參數8、使用kubeadm部署9、驗證安裝結果計算…

「Flink」算子主要方法介紹

背景&#xff1a; 上期文章主要講了Flink項目搭建的一些方法&#xff0c;其中對于數據流的處理很大一部分是通過算子來進行計算和處理的&#xff0c;算子也是Flink中功能非常龐大&#xff0c;且很重要的一部分。 算子介紹&#xff1a; 算子在Flink的開發者文檔中是這樣介紹的…

3405. 統計恰好有 K 個相等相鄰元素的數組數目

3405. 統計恰好有 K 個相等相鄰元素的數組數目 給你三個整數 n &#xff0c;m &#xff0c;k 。長度為 n 的 好數組 arr 定義如下&#xff1a; arr 中每個元素都在 閉 區間 [1, m] 中。恰好 有 k 個下標 i &#xff08;其中 1 < i < n&#xff09;滿足 arr[i - 1] arr…

Spring AI 項目實戰(十):Spring Boot + AI + DeepSeek 構建智能合同分析技術實踐(附完整源碼)

系列文章 序號文章名稱1Spring AI 項目實戰(一):Spring AI 核心模塊入門2Spring AI 項目實戰(二):Spring Boot + AI + DeepSeek 深度實戰(附完整源碼)3Spring AI 項目實戰(三):Spring Boot + AI + DeepSeek 打造智能客服系統(附完整源碼)4

impala中時間戳轉(DATE)指定格式的字符串

注意i&#xff1a;注意大小寫 timestamp\date–>string SELECT now(),from_timestamp(now(),yyyyMMdd);string->timestamp SELECT 20230710,to_timestamp(20230710,yyyyMMdd);日期加減 select 20231201,from_timestamp(date_add(to_timestamp(20231201,yyyyMMdd),1),…

百度下拉框出詞技術解密:72小時出下拉詞軟件原理分享

如何才能刷下拉詞&#xff1f;這個問題一直是企業做流量時最糾結的問題&#xff0c;百度下拉詞作為百度搜索體驗中的一項智能化功能&#xff0c;極大地方便了用戶快速完成搜索&#xff0c;也成為了企業在搜索引擎優化&#xff08;SEO&#xff09;策略中的重要流量入口。通過研究…

上海人工智能實驗室明珠湖會議首開,解答AI前沿疑問,推進科學智能

在通用人工智能&#xff08;AGI&#xff09;探索如火如荼的當下&#xff0c;如何加速突破&#xff1f;如何凝練關鍵問題、孕育顛覆性創新&#xff1f;2025年6月13日&#xff0c;上海人工智能實驗室主任、首席科學家&#xff0c;清華大學惠妍講席教授周伯文在首屆明珠湖會議&…

BeyondCompare安裝(永久免費使用+全網最詳細版)

一.下載&#xff1a; 官網下載&#xff08;速度較慢&#xff09;&#xff1a; https://www.scootersoftware.com/download.php 阿里云盤&#xff08;不限速&#xff09; https://www.alipan.com/s/WaG1z54BQ2U 二.安裝&#xff08;無腦下一步即可&#xff09; 三.永久免費…

如何用AI開發完整的小程序<7>—讓AI微調UI排版

上一節我們介紹了如何讓AI修改整體UI視覺效果。 不過有時候AI調整的并不理想&#xff0c;一些UI的布局還是需要微調。 比如已經實現的這個開始頁面&#xff0c;我覺得標題太高了&#xff0c;這時候可以自己調&#xff0c;也可以讓AI單獨調&#xff0c;下面詳細介紹。 一、手動…

64-Oracle Redo Log

小伙伴們&#xff0c;關于數據庫的redo log相信大家都操作很多次了,且這是OCM考試必考內容。Oracle Redo Log是一種特殊的日志文件&#xff0c;用于完整地記錄數據庫中所有數據變更的詳細信息。當數據庫執行插如、更新或刪除等更新操作&#xff0c;這些操作并不會立刻寫入數據庫…

hive集群優化和治理常見的問題答案

Hive 集群優化與治理常見問題答案合集 &#x1f42d;1. Q&#xff1a;Hive中如何優化大表Join操作&#xff1f; A&#xff1a; 使用Map Join&#xff08;小表Join大表時&#xff09;避免Reduce階段。啟用自動Map Join&#xff08;設置hive.auto.convert.jointrue&#xff09;…

C#采集電腦硬件(CPU、GPU、硬盤、內存等)溫度和使用狀況

這是采集出來的Json&#xff0c;部分電腦&#xff08;特別是筆記本&#xff09;無法獲取到&#xff1a; {"HardwareList": [{"Name": "MITX-6999","Type": "主板","Sensors": [],"WmiReport": null}, …

C3新增特性

? 一、選擇器&#xff08;Selectors&#xff09; 1. 屬性選擇器 [attr^value]: 匹配屬性值以特定字符串開頭的元素。[attr$value]: 匹配屬性值以特定字符串結尾的元素。[attr*value]: 匹配屬性值包含特定字符串的元素。 2. 子元素和兄弟元素選擇器 :nth-child(n): 匹配父元…

報錯 @import “~element-ui/packages/theme-chalk/src/index“;

報錯 import "~element-ui/packages/theme-chalk/src/index"; 具體報錯報錯原因 具體報錯 SassError: Can’t find stylesheet to import. import “~element-ui/packages/theme-chalk/src/index”; src\views\login\theme\element-variables.scss 8:9 root stylesh…

ESLint從入門到實戰

引言 作為前端開發者&#xff0c;你是否遇到過這樣的情況&#xff1a;團隊成員寫出的代碼風格各異&#xff0c;有人喜歡用分號&#xff0c;有人不用&#xff1b;有人用雙引號&#xff0c;有人用單引號&#xff1b;代碼評審時總是在糾結這些格式問題而不是業務邏輯&#xff1f;…

vue3實現markdown文檔轉HTML并可更換樣式

vue3實現markdown文檔轉HTML 安裝marked npm install marked<template><!-- 后臺可添加樣式編輯器 --><div class"markdown-editor" :class"{ fullscreen: isFullscreen, preview-mode: isPreviewMode }"><div class"editor-c…