动态规划,优化了空间

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