LearnProductTeam
Dynamic Programming
Rob House
Omer Goldberg
January 17, 2020
8 min

Start now! ๐Ÿš€๐Ÿš€

Join our beta to get free access to our full syllabus ๐ŸŽ‰ ๐Ÿฅณ

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


Tags

#recursion#dynamicprogramming#leetcode

Omer Goldberg

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

Social Media

instagramlinkedinwebsite

Related Posts
18

Longest Palindromic Substring
Longest Palindromic Substring
February 12, 2021
14 min
ยฉ 2024, All Rights Reserved.

Quick Links

HomeLearnProductInstructors

Social Media