
### 198. House Robber


题目:
<https://leetcode.com/problems/house-robber/>


难度:

Easy


状态转移方程:

dp[i] = max(dp[i-1], dp[i-2] + nums[i])


AC 代码

```python
class Solution(object):
    def rob(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        n = len(nums)
        if n == 0 : return 0
        elif n == 1 : return nums[0]
        elif n == 2 : return max(nums[0], nums[1])
        else:
            dp = [0 for i in range(n)]
            dp[0] = nums[0]
            dp[1] = max(nums[0],nums[1])
            for i in range(2,n):
                dp[i] = max( dp[i-1], dp[i-2] + nums[i])
        return dp[n-1]
```

```python
class Solution(object):
    def rob(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        last, now = 0, 0
        for i in nums: last, now = now, max(last + i, now)     
        return now
```


