刷題筆記 打家劫舍

2021-10-04 12:10:08 字數 406 閱讀 2320

定義 dp[i] 為當小偷洗劫了第 i 家的情況下,他能偷竊到的最大金額。定義 money[0] 為截止到第 i-2 戶人家,小偷得到的最大盜竊金額,money[1] 為截至第 i-1 戶人家的情況。定義 robmax 為他走過第 i-1 家之後,能偷竊到的最大金額。偷竊了第i家就不能偷竊第i-1家,所以 robmax = max(robmax, money[0]+nums[i])。遍歷陣列,最後的 robmax 即為結果。只記錄 money[0]、money[1] 實現了空間複雜度的最小化。

class

solution

, maxrob=0;

for(

int i=

2; i2; i++

)return maxrob;}}

;

每日刷題 打家劫舍

你是乙個專業的小偷,計畫偷竊沿街的房屋。每間房內都藏有一定的現金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。給定乙個代表每個房屋存放金額的非負整數陣列,計算你在不觸動警報裝置的情況下,能夠偷竊到的最高金額。示例 例 1 輸入...

刷題筆記 動態規劃例項 打家劫舍

按照基本邏輯走 1,確定狀態 首先分析題目,找核心邏輯。本題中規定不能獲得相鄰位置的資料,同時可以容易想到,越到後面,累加值越大。由此我們遇到乙個問題,最後取第n個資料,還是取第n 1個資料呢?只需要比較一下前n個能取得的最大和與前n 1個能取到的最大和,誰大取誰。此處可以使用乙個陣列d儲存對應第i...

刷題筆記 Binary watch

include include include using namespace std class solution m count push back i for int i 0 i num i vector a n,n 5 將陣列n的前5個元素作為向量a的初值 vector a n 1 n 4 ...