动态规划,优化了空间
class Solution:
def rob(self , nums: List[int]) -> int:
# write code here
n=len(nums)
if n==1:
return nums[0]
if n==2:
return max(nums[0],nums[1])
first=nums[0]
second=max(nums[0],nums[1])
for i in range(2,n):
first,second=second,max(second,first+nums[i])
return second