Python 98.11% Faster. Run twice O(n)

class Solution(object):

def rob(self, nums):
    """
    :type nums: List[int]
    :rtype: int
    """
    
    if len(nums) == 1:
        return nums[0]
    
    prev = 0
    cur = 0
    
    for i in range(0, len(nums)-1):
        temp = cur
        cur = max(nums[i]+prev, cur)
        prev = temp
        
        
    prev2 = 0
    cur2 = 0
    
    for i in range(1, len(nums)):
        temp = cur2
        cur2 = max(nums[i]+prev2, cur2)
        prev2 = temp
        
        
    return max(cur, cur2)
Comments (0)