力扣198. 打家劫舍

動態規劃

  • 思路:
    • 尋找狀態轉移方程:
      • 假設有 n 個房間;
        • 如果偷第 n 個房間,那么第 n - 1 個房間不偷,之前的 n - 2 個房間偷竊到了 M(n - 2),總共可以偷竊到?M(n - 2) + N(n);
        • 如果不偷第 n 個房間,那么 n - 1 個房間可以偷竊到 M(n - 1);
      • 所以,選擇其中最大的情況是利益最大化,即 M(n) = max(M(n-2) + N(n), M(n-1));
    • 邊界條件:
      • 一個房間的時候 M(1) = N(1)
      • 兩個房間的時候 M(2) = max(N(1), N(2))
    • 綜上,完整代碼:
class Solution {
public:int rob(vector<int>& nums) {if (nums.empty()) {return 0;}int size = nums.size();if (size == 1) {return nums[0];}std::vector<int> dp = std::vector<int>(size, 0);dp[0] = nums[0];dp[1] = std::max(nums[0], nums[1]);for (int i = 2; i < size; ++i) {dp[i] = std::max(dp[i - 2] + nums[i], dp[i - 1]);}return dp[size - 1];}
};

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

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

相關文章

第11節: Vue3 動態參數

在UniApp中使用Vue3框架使用動態參數&#xff1a; <template> <view> <text>{{ dynamicText }}</text> <button click"changeText">點擊改變文本</button> </view> </template> <script> export de…

SD-WAN解決企業國際互聯組網需求

隨著云計算、移動應用和企業全球化的浪潮&#xff0c;實時應用在不同地點之間的傳輸需求不斷增加&#xff0c;涵蓋異地辦公、視頻會議、遠程桌面、支付交易系統以及遠程醫療等。這些應用的順暢傳輸對于企業至關重要&#xff0c;而SD-WAN&#xff08;軟件定義廣域網&#xff09;…

Spring MVC詳解、靜態資源訪問、攔截器

1. Spring MVC概述 1.1 Spring MVC是什么 SpringMVC是Spring的一個模塊&#xff0c;是一個基于MVC設計模式的web框架。 1.2 Spring MVC執行流程。 1.3 組件分析 前端控制器&#xff08;默認配置&#xff09;Dispatcher Servlet 作用&#xff1a;只負責分發請求。可以很好的對…

這樣的軟件測試面試題,誰面試遇到誰淘汰!!!

88 11.6 自動化測試用例的來源 手工編寫測試用例 把原來手工的測試用例&#xff0c;當成自動化測試用例 11.7 自動化測試的優點與缺點 優點: 1、對程序的回歸測試更方便 2、可以運行更多更繁瑣的測試 3、提高測試效率和準確性&#xff0c;節約時間成本 4、可以執行一些手工測試…

【源碼解析】從ReentrantLock角度聊聊AQS原理

AQS結構 //頭節點 當前持有鎖的線程private transient volatile Node head;/*** Tail of the wait queue, lazily initialized. Modified only via* method enq to add new wait node.*///每個進來的線程都插入到最后private transient volatile Node tail;/*** The synchroni…

MLIR筆記(6)

5. 方言與操作 5.1. 方言的概念 在MLIR里&#xff0c;通過Dialect類來抽象方言。具體的每種方言都需要從這個基類派生一個類型&#xff0c;并實現重載自己所需的虛函數。 MLIR文檔里這樣描述方言&#xff08; MLIR Language Reference - MLIR&#xff09;&#xff1a; 方言…

手把手教你玩轉ESP8266(原理+驅動)

在嵌入式開發中&#xff0c;無線通信的方式有很多&#xff0c;其中 WIFI 是繞不開的話題。說到 WIFI 通信&#xff0c;就不得不提 ESP8266了。 ESP8266 是一款高性能的 WIFI 串口模塊&#xff0c;實現透明傳輸。只要有一定的串口知識&#xff0c;不需要知道 WIFI 原理就可以上…

作為一個產品經理帶你了解Axure的安裝和基本使用

1.Axure的簡介 Axure是一種強大的原型設計工具&#xff0c;它允許用戶創建交互式的、高保真度的原型&#xff0c;以及進行用戶體驗設計和界面設計。Axure可以幫助設計師和產品經理快速創建和共享原型&#xff0c;以便團隊成員之間進行溝通和反饋。Axure提供了豐富的交互組件和功…

Spring--10--Spring Bean的生命周期

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 1.Spring Bean1.1 什么是 Bean簡而言之&#xff0c;bean 是由 Spring IoC 容器實例化、組裝和管理的對象。 1.2 Spring框架管理Bean對象的優勢 2.Bean的生命周期實例…

西工大網絡空間安全學院計算機系統基礎實驗二(phase_2下——漫漫深夜過后的黎明!!!)

內存地址內存地址中的數注釋指向這塊內存的寄存器0xffffd0e8函數phase_2的棧幀0xffffd0e40xffffd0f4函數phase_2的棧幀0xffffd0e00x5655b7b0函數phase_2的棧幀0xffffd0dc0x565566ca函數read_six_numbers的返回地址&#xff0c;函數phase_2的棧幀0xffffd0d80x5655af64舊%ebx的值…

SpringIOC之ConditionEvaluator

博主介紹:?全網粉絲5W+,全棧開發工程師,從事多年軟件開發,在大廠呆過。持有軟件中級、六級等證書。可提供微服務項目搭建與畢業項目實戰,博主也曾寫過優秀論文,查重率極低,在這方面有豐富的經驗? 博主作品:《Java項目案例》主要基于SpringBoot+MyBatis/MyBatis-plus+…

Netty性能好的原因是什么

Netty性能好的原因 廢話篇Netty性能好的原因是什么1. 非阻塞IO模型高效的Reactor線程模型零拷貝內存池設計無鎖串行化設計高性能序列化協議 廢話篇 相信有同學會經常被問到這樣的問題&#xff0c;不妨下次被面試官問到這種問題&#xff0c;我們可以這樣回答&#xff01; Nett…

簡單實用的firewalld命令

簡單實用的firewalld命令 一、查看防火墻是否打開二、查詢、開放、關閉端口三、查看已監聽端口四、驗證 一、查看防火墻是否打開 systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.…

map.getOrDefault

map.getOrDefault 是 Java 中的一個方法&#xff0c;用于從 Map 中獲取指定鍵的值&#xff0c;如果鍵不存在&#xff0c;則返回指定的默認值。 方法簽名如下&#xff1a; V getOrDefault(Object key, V defaultValue) 其中&#xff0c;key 是要獲取值的鍵&#xff0c;defaul…

day19_java泛型

泛型 Java 泛型&#xff08;generics&#xff09;是 JDK 5 中引入的一個新特性, 泛型提供了編譯時類型安全檢測機制&#xff0c;該機制允許程序員在編譯時檢測到非法的類型。保證了java的安全性 泛型的本質是參數化類型&#xff0c;也就是說所操作的數據類型被指定為一個參數…

AWS EC2使用 instance profile 訪問S3

AWS EC2 instance可以使用instance profile 配置訪問S3的權限。 然后就可以直接在EC2上執行 python代碼或者AWS CLI去訪問S3了。 唯一需要注意的地方是&#xff0c;申明region。 示例代碼&#xff1a; aws s3 ls xxxx-s3-bucket --region xxx-region import boto3 client …

一文讀懂MySQL基礎知識文集(8)

&#x1f3c6;作者簡介&#xff0c;普修羅雙戰士&#xff0c;一直追求不斷學習和成長&#xff0c;在技術的道路上持續探索和實踐。 &#x1f3c6;多年互聯網行業從業經驗&#xff0c;歷任核心研發工程師&#xff0c;項目技術負責人。 &#x1f389;歡迎 &#x1f44d;點贊?評論…

IDEA 報錯

IDEA 報錯&#xff1a; Cannot resolve symbol&#xff1a;這通常是由于 IDEA 無法識別您正在使用的類或方法導致的。請確保您已經導入了正確的包&#xff0c;并且您的類路徑設置正確。 NullPointerException&#xff1a;這通常是由于您的代碼嘗試訪問空對象或空值導致的。請檢…

JavaScript 函數的返回值

JavaScript 函數的返回值 JavaScript 函數的返回值是函數執行后返回的值&#xff0c;可以是任意類型的值&#xff0c;包括數字、字符串、布爾值、對象等。函數的返回值通過 return 關鍵字來指定&#xff0c;如果函數沒有指定返回值&#xff0c;則默認返回 undefined。例如&…

Qt處理焦點事件(獲得焦點,失去焦點)

背景&#xff1a; 我只是想處理焦點動作&#xff0c;由于懶&#xff0c;上網一搜&#xff0c;排名靠前的一位朋友&#xff0c;使用重寫部件的方式實現。還是因為懶&#xff0c;所以感覺復雜了。于是又花了一分鐘解決了一下。 所以記錄下來&#xff0c;以免以后忘了。 思路&a…