LeetCode 198 House Robber - Implementation

The approach

Track two previous maxes. Update iteratively.

def rob(nums): if len(nums) == 1: return nums[0] prev2, prev1 = nums[0], max(nums[0], nums[1]) for i in range(2, len(nums)): curr = max(prev1, prev2 + nums[i]) prev2, prev1 = prev1, curr return prev1

O(n)O(n) time, O(1)O(1) space.