動態規劃 打家劫舍II

2021-09-27 22:44:33 字數 672 閱讀 5252

題目(打家劫舍ii):在上次盜竊完一條街道之後,竊賊又轉到了乙個新的地方,這樣他就不會引起太多注意。這一次,這個地方的所有房屋都圍成一圈。這意味著第乙個房子是最後乙個是緊挨著的。同時,這些房屋的安全系統與上次那條街道的安全系統保持一致。 

給出乙份代表每個房屋存放錢數的非負整數列表,確定你可以在不觸動警報的情況下盜取的最高金額。 

思路:這個題目比打家劫舍i中多了乙個前提,就是所有的房屋圍成一圈,這意味著第乙個房子個最後乙個房子緊挨。說明第乙個房屋和最後乙個房屋不能同時盜取。我們可以考慮兩種情況:

(1)考慮偷取[0, n - 2]的房屋。

(2)考慮偷取[1, n - 1]的房屋。

取上述兩種情況的大者即為答案。

以房子vec[2,3,2],來畫圖說明思路:

**實現:

#include #include using namespace std;

int nicegetcandiesii(vector&vec)

int res=nicegetcandiesii(vec);

cout<

return 0;

}

動態規劃 打家劫舍II

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

動態規劃之 打家劫舍II

你是乙個專業的小偷,計畫偷竊沿街的房屋,每間房內都藏有一定的現金。這個地方所有的房屋都圍成一圈,這意味著第乙個房屋和最後乙個房屋是緊挨著的。同時,相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。給定乙個代表每個房屋存放金額的非負整數陣列,計算你在不觸動警報裝...

Leetcode 打家劫舍II(中等)動態規劃

題目描述 你是乙個專業的小偷,計畫偷竊沿街的房屋,每間房內都藏有一定的現金。這個地方所有的房屋都圍成一圈,這意味著第乙個房屋和最後乙個房屋是緊挨著的。同時,相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。給定乙個代表每個房屋存放金額的非負整數陣列,計算你在不...