Dynamic programmingLeetCode 198

Lesson 42 of 76

House Robber

Find the most money you can rob from a row of houses without robbing two adjacent houses.

Watch on YouTube

Lesson notes

Try it before you watch

Restate the problem in your own words, list the edge cases, and sketch a solution with its running time. Then play the video and compare.

Reveal the key idea

For each house take the better of skipping it or robbing it plus the best total from two houses back. Two variables are enough.

Pattern: Dynamic programming. Define a state, write the recurrence between states, and compute each state only once.

Complexity

Cost of the standard optimal approach for House Robber
Measure Bound
Time O(n)
Extra space O(1)

Walkthroughs often start from a simpler approach first; aim to reach these bounds. New to Big-O? Read understanding algorithmic complexity.