House Robber

https://leetcode.com/explore/featured/card/top-interview-questions-easy/97/dynamic-programming/576/

First solution

class Solution:
    def rob(self, nums: List[int]) -> int:
        n = len(nums)
        if n == 0:
            return 0
        dp= [0] * n
        for i in range(n):
            dp[i] = nums[i]
            if i >=2 :
                dp[i] = max(dp[i-1], dp[i-2]+nums[i])
            else:
                dp[i] = max(dp[i],dp[i-1])
        return dp[n-1]
        

Last updated

Was this helpful?