You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
这一次终于懂一点Dynamic planning了,The first is the youngest problem,I first thought it was to consider where to start,Start from the first or the second one(这刚好是和Hiccup1Difference)。
18
+
但实际上最小子问题还是和Hiccup1Same:Whether to rob the current house。
19
+
First we set one`dp`Array,`dp[i]`Indicate robbery to the first`i`The maximum return when a house。
20
+
Then we rob the current house after we rob the current house `dp[i] = dp[i-2] + nums[i]`,(Because the house can not be robbed before the current house is robbed),Do not rob the current house `dp[i] = dp[i-1]`。
21
+
So we can get the state transfer equation:`dp[i] = max(dp[i-2] + nums[i], dp[i-1])`。
22
+
Last classification discussion and robbery, the first or the second start。
23
+
24
+
# Code:
25
+
26
+
```python
27
+
classSolution:
28
+
defrob(self, nums: List[int]) -> int:
29
+
defrob1(nums: List[int]) -> int:
30
+
iflen(nums) ==1:
31
+
return nums[0]
32
+
ans =0
33
+
dp = [0] *len(nums)
34
+
# def: dp[i]Express the robberyiHome
35
+
# theft FirstiHouse,The income isdp[i-2]+nums[i], 不theftFirstiHouse,The income isdp[i-1]
0 commit comments