mirror of
https://github.com/devenperez/leetcode.git
synced 2026-06-13 14:57:08 +00:00
Time: 0 ms (100%), Space: 12.6 MB (14.83%) - LeetHub
This commit is contained in:
@@ -4,21 +4,19 @@ class Solution(object):
|
|||||||
:type nums: List[int]
|
:type nums: List[int]
|
||||||
:rtype: int
|
:rtype: int
|
||||||
"""
|
"""
|
||||||
if len(nums) == 1:
|
|
||||||
return nums[0]
|
if len(nums) < 3:
|
||||||
|
return max(nums)
|
||||||
|
|
||||||
# Subproblem: only nums 0 to i exist and i is always robbed
|
# Subproblem: only nums 0 to i exist and i is always robbed
|
||||||
dp = [0] * len(nums)
|
dp = [0] * len(nums)
|
||||||
|
|
||||||
for i, money in enumerate(nums):
|
dp[0] = nums[0]
|
||||||
if i == 0 or i == 1:
|
dp[1] = nums[1]
|
||||||
dp[i] = nums[i]
|
dp[2] = nums[2] + nums[0]
|
||||||
continue
|
|
||||||
|
|
||||||
if i == 2:
|
|
||||||
dp[i] = nums[i] + dp[i - 2]
|
|
||||||
continue
|
|
||||||
|
|
||||||
|
for i in range(3, len(nums)):
|
||||||
dp[i] = nums[i] + max(dp[i - 2], dp[i - 3])
|
dp[i] = nums[i] + max(dp[i - 2], dp[i - 3])
|
||||||
|
|
||||||
return max(dp[-1], dp[-2])
|
return max(dp[-1], dp[-2])
|
||||||
|
|||||||
Reference in New Issue
Block a user