198. 打家劫舍

注意事项

这个题目很容易搞明白, 但是需要注意的是, 这个题目的初始化比较麻烦.


class Solution(object):
    def rob(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        
        n = len(nums)
        
        # guard phase, 无法递推就直接硬编码
        if n == 0:
          return 0
        elif n==1:
          return nums[0]
        elif n==2:
          return max(nums[0],nums[1])
        
        dp = [0]*n
        
        # 初始化
        dp[0] = nums[0]
        dp[1] = max(nums[0],nums[1])
        
        
        for i in range(2, n):
          dp[i] = max(dp[i-2]+nums[i], dp[i-1])
          
        return dp[-1]
       ```
    原文作者:cptn3m0
    原文地址: https://www.jianshu.com/p/bd8ea88ddd5e
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞