LeetCode 198 打家劫舍

2021-08-19 02:12:12 字數 641 閱讀 1950

題目:你是乙個專業的強盜,計畫搶劫沿街的房屋。每間房都藏有一定的現金,阻止你搶劫他們的唯一的制約因素就是相鄰的房屋有保安系統連線,如果兩間相鄰的房屋在同一晚上被闖入,它會自動聯絡**。

給定乙個代表每個房屋的金額的非負整數列表,確定你可以在沒有提醒**的情況下搶劫的最高金額。

思路:

本題的大致意思就是求取乙個陣列中不相鄰的數的最大值。

這裡,當強盜選取乙個房間編號為n去搶劫時,首先需要思考,n號這個房間可不可以被搶劫,即與這個房間相鄰的上乙個編號為(n-1)的房間有沒有被搶劫。因此可知,這裡狀態分為2種:

①當上乙個相鄰的編號為(n-1)房間已經被搶劫時,則該房間不能被搶劫,此時搶劫得到的最大金額仍和編號為(n-1)房間時相同;

②當上乙個相鄰的編號為(n-1)房間沒有被搶劫時,則本次搶劫金額為到編號(n-2)的房間的最大金額加上本次房間的金額。

使用dp[i]表示到第i個房間時得到的最大金額數,得到狀態轉移方程:

dp[i]=max;

**:

class solution 

return dp[nums.size()-1];

}};

LeetCode198 打家劫舍

你是乙個專業的強盜,計畫搶劫沿街的房屋。每間房都藏有一定的現金,阻止你搶劫他們的唯一的制約因素就是相鄰的房屋有保安系統連線,如果兩間相鄰的房屋在同一晚上被闖入,它會自動聯絡 給定乙個代表每個房屋的金額的非負整數列表,確定你可以在沒有提醒 的情況下搶劫的最高金額。簡單的動態規劃問題,題目意思是計算陣列...

LeetCode198 打家劫舍

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

Leetcode 198 打家劫舍

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