Back to problems Solve on LeetCode → See #70 Climbing Stairs →

House Robber

LeetCode 198 • Medium • Dynamic Programming

Input: nums = [2, 7, 9, 3, 1]  →  Output: 12
Rob max money. No two adjacent. dp[i] = max(dp[i-1], dp[i-2] + nums[i]). O(1) space with prev, curr.

TimeO(n)single pass
SpaceO(1)prev, curr
prev: curr:
prev
curr
Current house
prev
curr
Ready
Press Play. For each house: curr = max(prev + nums[i], curr); prev = old curr.