Problem 🤔

You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them is that adjacent houses have security system connected and it will automatically contact the police if two adjacent houses were broken into on the same night.

Given a list of non-negative integers representing the amount of money of each house, determine the maximum amount of money you can rob tonight without alerting the police.

Example 1

Input: nums = [1,2,3,1]

Output: 4

Explanation

Rob house 1 (money = 1) and then rob house 3 (money = 3). Total amount you can rob = 1 + 3 = 4.

Example 2

Input: nums = [2,7,9,3,1]

Output: 12

Explanation

Rob house 1 (money = 2), rob house 3 (money = 9) and rob house 5 (money = 1). Total amount you can rob = 2 + 9 + 1 = 12.

Real World Applications 🌎

Let’s hope this problem doesn’t serve as insipiration, eh?

Let's be real here

TODO:

The Finer Details 🔎

TODO:

Solution 💡

Complexity Analysis 🧮

Time Complexity

O(n)

One traversal of our list of size n.

Space Complexity

O(n)

Our dp list is of size n.

Takeaways 🎉🥳

TODO:

Resources 📚

Leetcode

Tech Lead

crafting mobile experiences @ instagram. tech Lead @ facebook. former algorithm and fullstack Teacher @ israel tech challenge. crypto crazy.

Expertise

Algorithms
System Design
Android
Blockchain
© 2025, All Rights Reserved.