打家劫舍(java版)

📑前言

本文主要是【動態規劃】——打家劫舍(java版)的文章,如果有什么需要改進的地方還請大佬指出??

🎬作者簡介:大家好,我是聽風與他🥇
??博客首頁:CSDN主頁聽風與他
🌄每日一句:狠狠沉淀,頂峰相見

目錄

    • 📑前言
    • 打家劫舍(java版)
    • [LCR 089. 打家劫舍](https://leetcode.cn/problems/Gu0c2T/)
    • 代碼:
    • [LCR 090. 打家劫舍 II](https://leetcode.cn/problems/PzWKhm/)
    • 代碼:
    • 📑文章末尾

打家劫舍(java版)

LCR 089. 打家劫舍

一個專業的小偷,計劃偷竊沿街的房屋。每間房內都藏有一定的現金,影響小偷偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警

給定一個代表每個房屋存放金額的非負整數數組 nums ,請計算 不觸動警報裝置的情況下 ,一夜之內能夠偷竊到的最高金額。

示例 1:

輸入:nums = [1,2,3,1]
輸出:4
解釋:偷竊 1 號房屋 (金額 = 1) ,然后偷竊 3 號房屋 (金額 = 3)。偷竊到的最高金額 = 1 + 3 = 4 。

示例 2:

輸入:nums = [2,7,9,3,1]
輸出:12
解釋:偷竊 1 號房屋 (金額 = 2), 偷竊 3 號房屋 (金額 = 9),接著偷竊 5 號房屋 (金額 = 1)。偷竊到的最高金額 = 2 + 9 + 1 = 12 。

代碼:

	public static int rob(int[] nums) {int n = nums.length;//創建dp數組int dp[] = new int[n];if(n==1) {return nums[0];}//對dp[0],dp[1]的狀態進行初始化dp[0]=nums[0];dp[1]=Math.max(nums[0], nums[1]);//從第三項開始,進行動態規劃,要么取前i-1項,要么取前i-2項加上nums[i],因為不能取相鄰的兩家,不然會觸發警報for(int i=2;i<n;i++) {dp[i]=Math.max(dp[i-1], dp[i-2]+nums[i]);}return dp[n-1];}

LCR 090. 打家劫舍 II

一個專業的小偷,計劃偷竊一個環形街道上沿街的房屋,每間房內都藏有一定的現金。這個地方所有的房屋都 圍成一圈 ,這意味著第一個房屋和最后一個房屋是緊挨著的。同時,相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警

給定一個代表每個房屋存放金額的非負整數數組 nums ,請計算 在不觸動警報裝置的情況下 ,今晚能夠偷竊到的最高金額。

示例 1:

輸入:nums = [2,3,2]
輸出:3
解釋:你不能先偷竊 1 號房屋(金額 = 2),然后偷竊 3 號房屋(金額 = 2), 因為他們是相鄰的。

示例 2:

輸入:nums = [1,2,3,1]
輸出:4
解釋:你可以先偷竊 1 號房屋(金額 = 1),然后偷竊 3 號房屋(金額 = 3)。偷竊到的最高金額 = 1 + 3 = 4 。

示例 3:

輸入:nums = [0]
輸出:0

代碼:

    public static int rob(int[] nums) {int n = nums.length;if(n==1) return nums[0];int dp1[] = new int[n];//要頭不要尾int dp2[] = new int[n];//不要頭要尾//對dp1和dp2進行初始化處理。dp1[0]=nums[0];dp1[1]=Math.max(nums[0], nums[1]);dp2[1]=nums[1];//進行動態規劃for(int i=2;i<n;i++) {dp1[i]=Math.max(dp1[i-1], dp1[i-2]+nums[i]);dp2[i]=Math.max(dp2[i-1], dp2[i-2]+nums[i]);}return Math.max(dp1[n-2], dp2[n-1]);}

📑文章末尾

在這里插入圖片描述

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

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

相關文章

17 easy 290. 單詞規律

//給定一種規律 pattern 和一個字符串 s &#xff0c;判斷 s 是否遵循相同的規律。 // // 這里的 遵循 指完全匹配&#xff0c;例如&#xff0c; pattern 里的每個字母和字符串 s 中的每個非空單詞之間存在著雙向連接的對應規律。 // // // // 示例1: // // //輸入: patte…

24計算機考研調劑 | 西安工大

西安工大 考研調劑招生信息 學校:西安工大 專業:- 年級:2024 招生人數:4 招生狀態:正在招生中 聯系方式:********* (為保護個人隱私,聯系方式僅限APP查看) 補充內容 歡迎化工、材料、環工等專業[或有計算機相關專業&#xff08;智能科學和軟件工程方向&#xff09;、機…

一款不錯的多端SSH工具:Xterminal

1、不僅是強大的SSH工具&#xff0c;更提供本地控制臺&#xff0c;以及更多即將推出的開發相關功能&#xff0c;讓您專注于創造卓越的代碼 2、AI賦能&#xff0c;智能命令提示&#xff0c;為大腦解壓 AI解答&#xff0c;讓你的疑問得到即時解答 AI智能提示&#xff0c;讓每一…

CodeFlying 和 aixcoder兩大免費軟開平臺,孰強孰弱?

今天為大家帶來碼上飛CodeFlying和aixcoder兩款免費的軟件開發平臺效果的測評 一、產品介紹 首先簡單介紹一下這兩個平臺 碼上飛CodeFlying&#xff1a;碼上飛 CodeFlying | AI 智能軟件開發平臺&#xff01; 是一款革命性的軟件開發平臺&#xff0c;它通過將軟件工程和大模…

Redis是AP的還是CP的?

redis是一個開源的內存數據庫&#xff0c;那么他到底是AP的還是CP的呢&#xff1f; 有人說&#xff1a;單機的是redis是cp的&#xff0c;而集群的redis是ap的&#xff1f; 但是我不這么認為&#xff0c;我覺得redis就是ap的&#xff0c;雖然在單機redis中&#xff0c;因為只有…

Git 基本操作 ?作區、暫存區、版本庫

創建本地倉庫&#xff1a; 創建 Git 本地倉庫 要提前說的是&#xff0c;倉庫是進行版本控制的?個文件目錄。我們要想對文件進行版本控制&#xff0c;就必須先創建?個倉庫出來。 首先touch 一個文件&#xff1a; 初始化倉庫&#xff1a; 創建完成后&#xff0c;我們會發現當前…

行列式錯題本

《1800》 1 階數和轉置 A是三階,B是4階,還有2這個系數 2 怎么啥也不會呀,委屈 行列式的拆分+提取系數 3

uniapp 安裝安卓、IOS模擬器并調試

一、安裝Android模擬器并調試 1.下載并安裝Android Studio。 2.創建簡單project。 3.安裝模擬器。 完成安卓模擬器的安裝。 4.啟動模擬器。 5.hbuilderx選擇模擬器、運行。 點擊刷新按鈕后出現模擬器&#xff0c;勾選并運行。 6.調試。 在 HBuilderX 中&#xff0c;項目啟…

每天一道leetcode:20.有效的括號(簡單;棧的經典題目)

?今日份題目 給定一個只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判斷字符串是否有效。 有效字符串需滿足&#xff1a; 左括號必須用相同類型的右括號閉合。 左括號必須以正確的順序閉合。 每個右括號都有一個對…

Nano 33 BLE Sense Rev2學習第一節——環境配置

參考文檔見Access Barometric Pressure Sensor Data on Nano 33 BLE Sense | Arduino Documentation 打開Arduino ide安裝開發板 選擇開發板 連接開發板到電腦&#xff0c;自動識別開發板端口&#xff0c;選擇端口

Python-類型檢查:typing模塊和mypy工具

Python-類型檢查&#xff1a;typing模塊和mypy工具 >>返回Python系列文章目錄<< 文章鏈接: Python中typing模塊 文章鏈接: PyCharm集成類型檢查mypy

ssh 一次執行多條命令(后臺運行)

文章目錄 1. 背景2. 命令2.1 命令分隔符2.2 多行腳本2.3 單行腳本 3. SSH 任務后臺運行 1. 背景 有時我們只需要遠程執行一次任務然后就關閉&#xff0c;而不需要長時間 ssh 登錄到遠程服務器。同時一次任務可能需要執行多條命令&#xff0c;那么我們該如何做呢&#xff1f; …

【Java】查看class文件的jdk編譯版本的兩種方式

一、使用文本編輯工具EditPlus 使用EditPlus打開該class文件&#xff0c;字符集選擇16進制&#xff08;Hex viewer&#xff09;。 僅看第一行數據&#xff0c;前面8個字節CA FE BA BE是固定的。 之后4個字節00 00 是次版本。 次版本后面的4個字節00 34 就是jdk版本。 jdk版本…

torch中的sort用法|torch.sort

今天在學習代碼時&#xff0c;發現有些深度學習的項目中使用到torch.sort()函數&#xff0c;在此記錄一下&#xff0c;方便自己的查閱. torch.sort() 官網給出了非常詳細的介紹&#xff0c;但是為了更進一步掌握這一用法&#xff0c;在此記錄一下。 具體官網鏈接如下&#xf…

華為認證HCIP報名條件有哪些?考試要求介紹

華為HCIP認證是很多網絡工程師的考證首選&#xff0c;尤其對于剛入行不久的網絡工程師們來說&#xff0c;這個證書無論是從難度出發還是從含金量出發&#xff0c;都是值得一考的。 那么如果想報名華為HCIP認證有哪些條件以及考試要求&#xff0c;華為HCIP的報名需不需要通過機…

鏡頭畸變模型及去畸變的原理

1. OpenCV去畸變undistortPoints原理解析 Opencv中鏡頭畸變包含了徑向畸變和切向畸變&#xff0c;本章節主要闡述鏡頭畸變模型以及去畸變的原理。 1.1 鏡頭畸變模型 參考opencv文檔 https://docs.opencv.org/3.1.0/d4/d94/tutorial_camera_calibration.html&#xff0c;opencv…

基于SpringBoot+MYSQL的醫護人員排班系統

基于springboot的醫護人員排班系統錄像 1、 前言介紹 隨著信息技術在管理上越來越深入而廣泛的應用&#xff0c;管理信息系統的實施在技術上已逐步成熟。本文介紹了醫護人員排班系統的開發全過程。通過分析醫護人員排班系統管理的不足&#xff0c;創建了一個計算機管理醫護人員…

LSA頭部結構簡述

LSA&#xff08;Link State Advertisement&#xff09;是一種用于路由協議頭部結構&#xff0c;用于在網絡中傳遞路由信息。 LSA頭部結構包含以下幾個字段&#xff1a; 1、LSA類型&#xff08;LSA Type&#xff09;&#xff1a;指示LSA的類型&#xff0c;不同類型的LSA用于傳遞…

Rabbitmq消息丟失-消費者消息丟失(二)

說明&#xff1a;消費端在處理消息的過程中出現異常&#xff0c;例如&#xff1a;業務邏輯異常&#xff0c;或者消費者被停機&#xff0c;或者網絡斷開連接等&#xff0c;以上等情況使消息沒有得到正確恰當的處理&#xff0c;也會使消息丟失。 分析&#xff1a;分析就是說明中…

Composer基礎使用 SDK包初始化

Composer 的工作原理 我們在使用 Composer 之前我們得了解一下它的實現原理&#xff0c;它主要由三個部分組成&#xff1a;命令行工具、包倉庫、代碼庫&#xff1a; Packagist 它是官方倉庫&#xff0c;也就是我們平常說的 Composer 源&#xff0c;它的作用是存儲這些包的信息…