打家劫舍 II

2021-10-03 11:14:18 字數 494 閱讀 1549

相較於打家劫舍,算是乙個公升級版。既然是打家劫舍的公升級版,那我們就先找與原版之間的聯絡。做過打家劫舍之後我們知道狀態轉移方程是dp[i]=max(dp[i-1],dp[i-2]+nums[i-1])。

然後我們再來看這道題,由相鄰的一家變成了相鄰的兩家。那麼就相當於把原來的一條直線首尾相連變成了乙個環,這句話你細品,哈哈。所以我們要做的就是把這個環怎麼變成直鏈,因為首尾相連,所以我們如果偷第一家就肯定不能偷最後一家,也就是說我們分成兩種情況:**我們今晚就在第一家到第n-1家裡面偷,和我們今晚就在第2家到第n家裡面偷。**然後把這兩種情況分別求出來的最大值再次比較,看看那種能偷到的利益更大,**如下:

class solution 

return max(a[n],b[n]);}};

打家劫舍II

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

打家劫舍II

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

打家劫舍II

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