LeetCode213——打家劫舍II
題目描述:
知識點:動態規劃
基本思路:
第一個房屋和最後一個房屋是緊挨著的,說明第一個房屋和最後一個房屋不能同時盜取。我們可以考慮兩種情況:
(1)考慮偷取[0, n - 2]的房屋。
(2)考慮偷取[1, n - 1]的房屋。
JAVA程式碼:
public int rob(int[] nums) { int n = nums.length; if(n == 0) { return 0; } if(n == 1) { return nums[0]; } //sum[i]:考慮偷取[0, i]範圍內的房子 //1.先考慮偷取[0, n - 2]的房子 int[] sum = new int[n - 1]; sum[0] = nums[0]; for (int i = 1; i < n - 1; i++) { sum[i] = 0; for (int j = 0; j <= i; j++) { if(j >= 2) { sum[i] = Math.max(sum[i], sum[j - 2] + nums[j]); }else { sum[i] = Math.max(sum[i], nums[j]); } } } int result1 = sum[n - 2]; //2.再考慮偷取[1, n - 1]的房子 int[] sum2 = new int[n]; sum2[1] = nums[1]; for (int i = 2; i < n; i++) { sum2[i] = 0; for (int j = 1; j <= i; j++) { if(j >= 3) { sum2[i] = Math.max(sum2[i], sum2[j - 2] + nums[j]); }else { sum2[i] = Math.max(sum2[i], nums[j]); } } } int result2 = sum2[n - 1]; return Math.max(result1, result2); }
複雜度分析:
本題只不過相當於做了兩次LeetCode198——打家劫舍的過程,因此時間複雜度和空間複雜度均與LeetCode198——打家劫舍相同。
時間複雜度:O(n ^ 2)
空間複雜度:O(n)
相關推薦
[Swift]LeetCode213. 打家劫舍 II | House Robber II
You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed. All houses at this place are ar
LeetCode213——打家劫舍II
題目描述: 知識點:動態規劃 基本思路: 第一個房屋和最後一個房屋是緊挨著的,說明第一個房屋和最後一個房屋不能同時盜取。我們可以考慮兩種情況: (1)考慮偷取[0, n - 2]的房屋。 (2)考慮偷取[1, n - 1]的房屋。 JAVA程式碼:
213 House Robber II 打家劫舍 II
n-1 tco logs emp 數列 ++ 一個 pty cnblogs 註意事項: 這是 打家劫舍 的延伸。在上次盜竊完一條街道之後,竊賊又轉到了一個新的地方,這樣他就不會引起太多註意。這一次,這個地方的所有房屋都圍成一圈。這意味著第一個房子是最後一個是緊挨著的。同時,
213. 打家劫舍 II
pan 解釋 pre AS 但是 nbsp 如果 num 連通 你是一個專業的小偷,計劃偷竊沿街的房屋,每間房內都藏有一定的現金。這個地方所有的房屋都圍成一圈,這意味著第一個房屋和最後一個房屋是緊挨著的。同時,相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被
#動態規劃 LeetCode 213 打家劫舍 II
界定 pre col class targe 狀態轉移方程 你是 code www 你是一個專業的小偷,計劃偷竊沿街的房屋,每間房內都藏有一定的現金。這個地方所有的房屋都圍成一圈,這意味著第一個房屋和最後一個房屋是緊挨著的。同時,相鄰的房屋裝有相互連通的防盜系統,如果兩間相
213.打家劫舍II
你是一個專業的小偷,計劃偷竊沿街的房屋,每間房內都藏有一定的現金。這個地方所有的房屋都圍成一圈,這意味著第一個房屋和最後一個房屋是緊挨著的。同時,相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。 給定一個代表每個房屋存放金額的非負整數陣列,計算你在不觸動
【LeetCode】 213. 打家劫舍 II
1.題目 你是一個專業的小偷,計劃偷竊沿街的房屋,每間房內都藏有一定的現金。這個地方所有的房屋都圍成一圈,這意味著第一個房屋和最後一個房屋是緊挨著的。同時,相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。 給定一個代表每個房屋存放金額
leetcode 213. 打家劫舍II
題目描述: 你是一個專業的小偷,計劃偷竊沿街的房屋,每間房內都藏有一定的現金。這個地方所有的房屋都圍成一圈,這意味著第一個房屋和最後一個房屋是緊挨著的。同時,相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。 給定一個代表每個房屋存放金額的非負整數陣列
leetcode---213. 打家劫舍 II
https://leetcode-cn.com/problems/house-robber-ii/ 你是一個專業的小偷,計劃偷竊沿街的房屋,每間房內都藏有一定的現金。這個地方所有的房屋都圍成一圈,這意味著第一個房屋和最後一個房屋是緊挨著的。同時,相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房
LeetCode 213. 打家劫舍 II(C++、python)
你是一個專業的小偷,計劃偷竊沿街的房屋,每間房內都藏有一定的現金。這個地方所有的房屋都圍成一圈,這意味著第一個房屋和最後一個房屋是緊挨著的。同時,相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。 給定一個代表每個房屋存放金額的非負整
213,打家劫舍II
你是一個專業的小偷,計劃偷竊沿街的房屋,每間房內都藏有一定的現金。這個地方所有的房屋都圍成一圈,這意味著第一個房屋和最後一個房屋是緊挨著的。同時,相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。 給定一個代表每個房屋存放金額的非負整
【Leetcode_總結】213. 打家劫舍 II - python
Q: 你是一個專業的小偷,計劃偷竊沿街的房屋,每間房內都藏有一定的現金。這個地方所有的房屋都圍成一圈,這意味著第一個房屋和最後一個房屋是緊挨著的。同時,相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。 給定一個代表每個房屋存放金額的非負整數陣列,計算
【Leetcode】打家劫舍 I and 打家劫舍 II(動態規劃)PYTHON
198.打家劫舍 題目表述: 你是一個專業的強盜,計劃搶劫沿街的房屋。每間房都藏有一定的現金,阻止你搶劫他們的唯一的制約因素就是相鄰的房屋有保安系統連線,如果兩間相鄰的房屋在同一晚上被闖入,它會自動聯絡警方。 給定一個代表每個房屋的金額的非負整數列表,確定
Leetcode 213:打家劫舍 II(最詳細的解法!!!)
你是一個專業的小偷,計劃偷竊沿街的房屋,每間房內都藏有一定的現金。這個地方所有的房屋都**圍成一圈,**這意味著第一個房屋和最後一個房屋是緊挨著的。同時,相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。 給定一個代表每個
【LeetCode】213. 打家劫舍 II——dp
題目 解答 和之前的198.打家劫舍類似,但有個限制就是陣列首尾相鄰,因此分兩種情況:從0開始和從1開始。 程式碼中dp1代表從0開始,dp2代表從1開始,均有如下狀態轉移方程: f(n) = max{f(n-1), f(n-2)+nums(n)} (
213. 打家劫舍 II -M
213. 打家劫舍 II 你是一個專業的小偷,計劃偷竊沿街的房屋,每間房內都藏有一定的現金。這個 地方所有的房屋都圍成一圈,這意味著第一個房屋和最後一個房屋是緊挨著的。 同時,相鄰的房屋裝有相互
【LeetCode】213. 打家劫舍 II 結題報告 (C++)
題目描述: 你是一個專業的小偷,計劃偷竊沿街的房屋,每間房內都藏有一定的現金。這個地方所有的房屋都圍成一圈,這意味著第一個房屋和最後一個房屋是緊挨著的。同時,相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。 給定一個代表每個房
LeetCode 213. 打家劫舍 II
示例 闖入 urn 所有 專業 code dp2 tor 情況 你是一個專業的小偷,計劃偷竊沿街的房屋,每間房內都藏有一定的現金。這個地方所有的房屋都圍成一圈,這意味著第一個房屋和最後一個房屋是緊挨著的。同時,相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被
LeetCode213. House Robber II
213. House Robber II You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed. A
Leetcode 213. House Robber II -打家劫舍,每家都有一定數量的錢,多家組成一個圓形,首尾相鄰,不能偷盜相鄰的兩家,求可偷盜的最大金額
You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed. All houses at this place are&