RUVIDEO
Поделитесь видео 🙏

198. House Robber | LeetCode Medium | Python Solution | Array, Dynamic Programming смотреть онлайн

Leetcode medium problem 198. House Robber, detailed explanation and solution in python language.

LeetCode Problem Link: https://leetcode.com/problems/house-robber/
Solution (Python Code): https://github.com/shaheershukur/LeetCode-Python-Solutions/blob/main/Python%20Solutions/198.%20House%20Robber.py

House Robber II: https://youtu.be/NhZsWqyMYj0
House Robber III: https://youtu.be/3WaWKRyB5VA

#leetcode #python #solution

Problem Statement:
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 systems connected and it will automatically contact the police if two adjacent houses were broken into on the same night.

Given an integer array nums representing the amount of money of each house, return the maximum amount of money you can rob tonight without alerting the police.
______________________________________________________________

LeetCode problem solving helps in improving one's problem solving and coding skills . Also, it helps in clearing technical interviews at top tech companies like Microsoft, Google, Amazon, Facebook, Walmart, Apple etc.
(FAANGM, MAANGM, Product based companies)

CC of video:
we are given an array of integers representing the amount of money present in the house.
and we need to rob the maximum amount of money such that we do not rob from two adjacent houses.

lets look at some examples.
if there is only 1 house, then we can simply rob whatever amount is present in that house.

if there are two houses, we can only rob 1 house among the two, because, we cannot rob 2 adjacent houses. so we will choose the house with maximum amount of money.

now, if there are 3 houses, to decide whether we need to rob the third house or not, we must look at the previous 2 houses. ie, if the second house has more money than the first and third house combined, then we can rob the second house, else we will rob the first and third houses.

so, if there are 3 or more houses, whats happening is, to decide whether we need to choose the current house or not, we must look at the previous 2 houses. ie, we are dependent on the previous results, or we can say that there is a repeating overlapping subproblem. therfore this problem is a good candidate for dynamic programming.

so now lets look at how to solve this problem when there are 3 or more houses, with an example.
we know that if there is only 1 house, we will rob that house.
now lets consider 2 houses. we will rob the maximum among the two, which is 7 in this case.

now lets consider 3 houses. here if we are robbing the third house, we can also rob the first house, which will give a total money of 16.
if we are not robbing the third house, then the best amount of money we can have till the second house is 7.
since 16 is greater than 7, we will rob the 1st and 3rd houses.

now lets consider the next 3 houses.
here, if we are robbing the 3rd house, then we can include the maximum amount of money we had robbed till the 1st house, which will give a total money of 10.
if we are not robbing the 3rd house, then the best amount of money we can have till the second house is 16.
since 16 is greater than 10, we will rob the 2nd house alone.

now lets consider the next 3 houses.
here, if we are robbing the 3rd house, then we can include the maximum amount of money we had robbed till the 1st house, which will give a total money of 17.
if we are not robbing the 3rd house, then the best amount of money we can have till the second house is 16.
since 17 is greater than 16, we will rob the 1st and 3rd houses.

so, at the end, we have a maximum total money of 17.

now lets code the solution.

we will store the length of the array in this variable.
if there is only 1 element in the array, we dont have to do anything, we can simply return that amount.

to solve this using dynamic programming, we will create a new array of same size, initially filled with zeroes.

we know that, when there is 1 house, we will rob that house.
when there are two houses, we will rob the maximum of the two houses.

now, we will handle 3 houses at once, using a for loop.
here if we are robbing the current house or the third house, then we can also add the total amount we got till the first house.
else we can rob the second house alone.
among these two, we will be choosing the maximum amount.

in the end, we will be returning the total amount of money we got after visiting the last house.

Что делает видео по-настоящему запоминающимся? Наверное, та самая атмосфера, которая заставляет забыть о времени. Когда вы заходите на RUVIDEO, чтобы посмотреть онлайн «198. House Robber | LeetCode Medium | Python Solution | Array, Dynamic Programming» бесплатно и без регистрации, вы рассчитываете на нечто большее, чем просто загрузку плеера. И мы это понимаем. Контент такого уровня заслуживает того, чтобы его смотрели в HD 1080, без дрожания картинки и бесконечного буферизации.

Честно говоря, Rutube сегодня — это кладезь уникальных находок, которые часто теряются в общем шуме. Мы же вытаскиваем на поверхность самое интересное. Будь то динамичный экшн, глубокий разбор темы от любимого автора или просто уютное видео для настроения — всё это доступно здесь бесплатно и без лишних формальностей. Никаких «заполните анкету, чтобы продолжить». Только вы, ваш экран и качественный поток.

Если вас зацепило это видео, не забудьте взглянуть на похожие материалы в блоке справа. Мы откалибровали наши алгоритмы так, чтобы они подбирали контент не просто «по тегам», а по настроению и смыслу. Ведь в конечном итоге, онлайн-кинотеатр — это не склад файлов, а место, где каждый вечер можно найти свою историю. Приятного вам отдыха на RUVIDEO!

Видео взято из открытых источников Rutube. Если вы правообладатель, обратитесь к первоисточнику.