第四十天 | 509.斐波那契數 70.爬樓梯 746.用最小花費爬樓梯

題目:509.斐波那契數

思路:

? ? ? ? 1.確定dp[i]含義:第i個斐波拉契數值為dp[i]

? ? ? ? 2.確定遞推公式:dp[i] = dp[i - 1] + dp[i - 2]

? ? ? ? 3.dp數組如何初始化:d[0] = 1, dp[1] = 1

? ? ? ? 4.遍歷順序:從前向后

? ? ? ? 5.打印dp

class Solution {
public:int fib(int n) {if(n <= 1) return n;         //這一個返回值不能少,如果測試集n = 0,少了這一步后面dp[1]會越界vector<int> dp(n + 1);dp[0] = 0;dp[1] = 1;for(int i = 2; i <= n; i++){dp[i] = dp[i - 1] + dp[i - 2];}return dp[n];}
};

只維護兩個值的方法如下

class Solution {
public:int fib(int n) {if(n <= 1) return n;         //這一個返回值不能少,如果測試集n = 0,少了這一步后面dp[1]會越界vector<int> dp(2);dp[0] = 0;dp[1] = 1;int sum;for(int i = 2; i <= n; i++){sum = dp[0] + dp[1];dp[0] = dp[1];dp[1] = sum;}return sum;}
};

題目:70.爬樓梯

思路:

? ? ? ? 舉個例子:想要買走到第5階,要么從第3階臺階邁兩步走到,要么從第4階臺階邁一步走到。所以dp[5] = dp[4] + dp[3].

1.dp數組含義:dp[i]代表到達第i階臺階有dp[i]種方法。

2.遞推關系:dp[i]? = dp[i -1] + dp[i - 2]

3.dp數組初始化:dp[1] = 1, dp[2] = 2

4.遍歷順序:從前向后

5.打印dp數組

代碼如下 :

class Solution {
public:int climbStairs(int n) {if(n == 1) return 1;vector<int> dp(n + 1);dp[1] = 1;dp[2] = 2;for(int i = 3; i <= n; i++){dp[i] = dp[i - 1] + dp[i - 2];}return dp[n];}
};

題目:746.用最小花費爬樓梯

1.dp數組含義:到達第i階樓梯要花費的體力為dp[i]

2.動態轉移方程:dp[i] = min(dp[i - 1] + cost[i - 1], dp[i - 2] = cost[i - 2])

3.初始化:dp[0] = 0, dp[1] = 0

4.遍歷順序

5.打印dp

class Solution {
public:int minCostClimbingStairs(vector<int>& cost) {int n = cost.size() + 1;vector<int> dp(n);dp[0] = 0;dp[1] = 0;for(int i = 2; i < n; i++){dp[i] = min(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2]);}return dp[n - 1];}
};

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

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

相關文章

C語言代碼文件開頭需要的代碼

#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h>

淚目!網絡連接中斷的原因,終于找到了!

朋友們&#xff0c;出大事了&#xff01; 不知道多少朋友玩過 DNF 這個游戲&#xff0c;這個我從小學玩到大學的 “破” 游戲&#xff0c;昨天竟然出手游了&#xff01; 我都忘了自己曾幾何時預約過這個手游通知&#xff0c;昨天給我發了條通知信息說游戲已開服。 老玩家直接…

Gitee好用的瀏覽器插件【GiteeTree】

使用gitee的時候&#xff0c;可能拉到別人的項目后&#xff0c;只是想看下某些文件的代碼&#xff0c;但是不得不全部都拉下來&#xff0c;每次點又很麻煩。這個插件【GiteeTree】就很好用了&#xff0c;只需要搜索GiteeTree&#xff0c;然后把插件下載下來

git revert 和 git reset

文章目錄 工作區 暫存區 本地倉庫 遠程倉庫需求&#xff1a;已推送到遠程倉庫&#xff0c;想要撤銷操作git revert &#xff08;添加新的提交來“反做”之前的更改&#xff0c;云端會殘留上次的提交記錄&#xff09;git reset&#xff08;相當于覆蓋上次的提交&#xff09;1.--…

中國科學院植物研究所宋獻軍課題組揭示不同的翻譯后修飾協作調控水稻種子大小的新機制

公眾號&#xff1a;生信漫談&#xff0c;獲取最新科研信息&#xff01; 中國科學院植物研究所宋獻軍課題組揭示不同的翻譯后修飾協作調控水稻種子大小的新機制https://mp.weixin.qq.com/s/ycNgYzACwkYZbo6k0Zqtcw 未來20年&#xff0c;我國將決戰全面建成社會主義現代化國家&…

MySQL筆記第三天(從小白到入門)

文章目錄 MySQL筆記SQL語言介紹數據庫系統關系型數據庫非關系型數據庫SQL和數據庫系統的關系數據庫系統架構 MySQL的介紹概念MySQL的版本 MySQL的DDL操作-重點基本數據庫操作基本表操作 MySQL的DML操作-重點insert-插入數據update-更新數據delete-刪除數據 MySQL的約束-了解概述…

工廠生產管理系統

為應對一些國內驗廠&#xff0c;如大疆等&#xff0c;他們需要客戶有自己的生產管理系統的&#xff0c;但實際很多公司是沒有引入ERP這類的系統的&#xff0c;從而想開發一套簡單的生產管理系統。 參考了網上一個比較古老的StorageMange項目&#xff0c;此項目用到DevExpress的…

數字簽名:確保信息完整性和身份驗證的關鍵技術

在數字時代&#xff0c;信息的安全性和真實性變得至關重要。數字簽名作為一種電子形式的簽名&#xff0c;提供了一種驗證信息來源和確保信息完整性的方法。本文將深入探討數字簽名的概念、工作原理、應用場景以及它如何幫助提高網絡安全性。 數字簽名的概念 數字簽名是一種加密…

C++與Android處理16進制大端/小端數據實例(二百七十六)

簡介&#xff1a; CSDN博客專家&#xff0c;專注Android/Linux系統&#xff0c;分享多mic語音方案、音視頻、編解碼等技術&#xff0c;與大家一起成長&#xff01; 優質專欄&#xff1a;Audio工程師進階系列【原創干貨持續更新中……】&#x1f680; 優質專欄&#xff1a;多媒…

數據庫DCL語句

數據庫DCL語句 介紹&#xff1a; DCL英文全稱是Data Control Language(數據控制語言)&#xff0c;用來管理數據庫用戶、控制數據庫的訪 問權限。 管理用戶&#xff1a; 查詢用戶: select * from mysql.user;創建用戶: create user 用戶名主機名 identified by 密碼;修改用…

Go語言垃圾回收機制原理

1. 概述 垃圾回收是一種自動內存管理技術&#xff1a;通過檢測程序中不再使用的內存&#xff0c;并釋放這些內存供其他對象使用。 應用程序中會使用到兩種內存&#xff0c;分別為堆(Heap)和棧(Stack)。GC不負責回收棧內存&#xff0c;只負責回收堆內存。 函數執行完后&#xff…

《計算機網絡微課堂》課程概述

? 課程介紹 本專欄主要是 B 站課程《計算機網絡微課堂》的文字版&#xff0c;作者是湖南科技大學的老師。 B 站地址&#xff1a;https://www.bilibili.com/video/BV1c4411d7jb 該課程好評如潮&#xff0c;包含理論課&#xff0c;實驗課&#xff0c;考研真題分析課&#xf…

Jenkins在windows上進行安裝

今天為了實現jmeter接口測試腳本的持續性集成安裝了jenkins&#xff0c;主要記錄jenkins的安裝和端口的修改。 前提條件&#xff1a;安裝了jdk&#xff0c;我本機安裝的jdk1.8。 1.下載jenkins安裝包 安裝jenkins我們需要先下載安裝包&#xff0c;可以通過下面的鏈接進行下載&a…

10分鐘用QEMU搭建嵌入式開發環境學習Linux

安裝依賴軟件 作者的使用的是ubuntu22.04版本。 sudo apt-get install git libglib2.0-dev libfdt-dev libpixman-1-dev zlib1g-dev ninja-build sudo apt-get install git-email sudo apt-get install libaio-dev libbluetooth-dev libcapstone-dev libbrlapi-dev libbz2-d…

JavaSE--基礎語法(第一期)

Java是一種優秀的程序設計語言&#xff0c;它具有令人賞心悅目的語法和易于理解的語義。不僅如此&#xff0c;Java還是一個有一系列計算機軟件和規范形成的技術體系&#xff0c;這個技術體系提供了完整的用于軟件開發和 跨平臺部署的支持環境&#xff0c;并廣泛應用于嵌入式系統…

基于Docker的ElasticSearch、Kibana服務搭建并開啟用戶鑒權

&#x1f3f7;?個人主頁&#xff1a;牽著貓散步的鼠鼠 &#x1f3f7;?系列專欄&#xff1a;云原生與服務部署專欄 &#x1f3f7;?個人學習筆記&#xff0c;若有缺誤&#xff0c;歡迎評論區指正 目錄 1. 前言 2. 服務搭建 2.1. 部署ElasticSearch 2.2. 部署Kibana 3. …

安全態勢管理的六大挑戰:態勢感知

德迅云安全鑒于如今的安全威脅不斷變幻&#xff0c;企業對實施態勢管理策略至關重要&#xff0c;可以讓安全團隊根據需要進行安全策略的動態調整。如果企業在研究構建態勢感知管理&#xff0c;需要特別關注以下六個方面的挑戰。 如果企業正在使用一個或多個平臺&#xff0c;那么…

java為什么main方法是主程序入口?已回答

答&#xff1a; 其實是C語言程序員規定的main&#xff0c;java程序才能通過main來進入程序&#xff0c;java程序是通過jvm虛擬機來運行的&#xff0c;其實main方法是可以修改的&#xff0c;C程序員來規定是main方法來進入主程序&#xff0c;還是其他方法進入主程序&#xff0c;…

IS-IS鏈路狀態數據庫

原理概述 一個OSPF鏈路狀態數據庫是若干條LSA的集合。與此相似&#xff0c;一個IS-IS鏈路狀態數據庫是由若干條LSP的集合。與OSPF鏈路狀態數據庫不同&#xff0c;IS-IS鏈路狀態數據庫有Level-1和Level-2之分。 在IS-IS協議中&#xff0c;每一條LSA都有一條剩余生存時間、一個…

[力扣題解] 417. 太平洋大西洋水流問題

題目&#xff1a;417. 太平洋大西洋水流問題 思路 代碼 (1) MyMothed // 符合條件的點 : 既可以到達左或上邊界&#xff0c;也可以到達右或下邊界&#xff1b; class Solution { private:int dir[4][2] {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};vector<vector<int>&g…