House Robber Problem
Watch how 1D dynamic programming finds the maximum money that can be robbed without hitting adjacent houses.
Time: O(n)
Space: O(1)
1D DP Array
Decision Making
Fast (300ms)Slow (2000ms)
Progress: Step 1 of 0Phase: start
Neighborhood (Planning...)
2
House 0
7
House 1
9
House 2
3
House 3
1
House 4
DP Array (Maximum Money Up To Each House)
dp[0]
$0
dp[1]
$0
dp[2]
$0
dp[3]
$0
dp[4]
$0
-
-
-
-
-
Current Step:
Click Start to begin the House Robber visualization
Algorithm Details
Time Complexity:
O(n)
Space Complexity:
O(1)
With Reconstruction:
O(n)
Type:1D DP Array
Real-world Applications
- •Job scheduling with conflicts
- •Maximum profit from non-adjacent investments
- •Resource allocation with constraints
- •Activity selection problems
- •Maximum sum with no adjacent elements
- •Stock trading with cooldown periods
Key DP Concepts
- ✓Constraint: Cannot rob adjacent houses
- ✓State: dp[i] = max money up to house i
- ℹRecurrence: dp[i] = max(rob, skip)
- ℹBase Cases: dp[0] = nums[0], dp[1] = max(nums[0], nums[1])
Problem Variants
- •House Robber II (circular array)
- •House Robber III (binary tree)
- •Maximum sum with k distance apart
- •Delete and earn (similar pattern)