Master the House Robber Problem with Dynamic Programming
This article explains the classic House Robber interview question, detailing the problem constraints, illustrating why a naive alternating‑house approach fails, and presenting a clear dynamic‑programming solution with recurrence, base cases, and a concise code example.
Problem Statement
Given an array of non‑negative integers where each element represents the amount of money in a house, determine the maximum amount that can be stolen without robbing two adjacent houses on the same night.
Example
Input: [3,2,1,2]
Output: 5
Choosing houses 0 and 3 yields 5, which is better than the naive alternating choice that would only give 4.
Analysis
Because adjacent houses are mutually exclusive, the problem cannot be solved by a fixed‑interval pattern; instead it requires considering two cases for each house: either it is robbed (and the previous house cannot be) or it is skipped.
Dynamic Programming Solution
Define dp[i] as the maximum amount that can be obtained from the first i+1 houses.
Recurrence: dp[i] = max(dp[i-1], dp[i-2] + nums[i]) Base cases:
dp[0] = nums[0] dp[1] = max(nums[0], nums[1])This recurrence captures the two possibilities: skipping the current house ( dp[i-1]) or robbing it ( dp[i-2] + nums[i]).
Code Example
Conclusion
The House Robber problem is a textbook example of using dynamic programming to transform a combinatorial optimization problem into a linear‑time solution by building on previously computed sub‑problems.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
NiuNiu MaTe
Joined Tencent (nicknamed "Goose Factory") through campus recruitment at a second‑tier university. Career path: Tencent → foreign firm → ByteDance → Tencent. Started as an interviewer at the foreign firm and hopes to help others.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
