Dynamic programmingLeetCode 213

Lesson 50 of 76

House Robber II

House Robber, but the houses stand in a circle, so the first and last house are neighbours.

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

The first and last house cannot both be robbed, so solve the linear House Robber problem twice (without the first house and without the last) and take the better result.

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 II
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.