198. House Robber
https://leetcode.com/problems/house-robber/
solution
只用到两个状态的DP,可以进一步优化空间
class Solution:
def rob(self, nums: List[int]) -> int:
if len(nums) <= 2:
return max(nums)
dp = [0] * len(nums)
dp[0] = nums[0]
dp[1] = max(nums[0], nums[1])
for i in range(2, len(nums)):
dp[i] = max(dp[i-1], dp[i-2]+nums[i])
return dp[-1]时间复杂度:O(n) 空间复杂度:O(n)
follow up
树形DP
此外,还有三角形DP 120. Triangle
时间复杂度:O() 空间复杂度:O()
Last updated