Max Consecutive Ones III - Leetcode 1004 - Sliding Window (Python)

preview_player
Показать описание


Please check my playlists for free DSA problem solutions:

My Favorite Courses:

Data Structures & Algorithms:

Python:

Web Dev / Full Stack:

Cloud Development:

Game Development:

SQL & Data Science:

Machine Learning & AI:
Рекомендации по теме
Комментарии
Автор

Master Data Structures & Algorithms For FREE at AlgoMap.io!

GregHogg
Автор

The clearest explanation and visualization I've ever seen on sliding windows them coming.

LemesaElias
Автор

Respect must be earned not given, you have my huge respect gregg hog, you are nothing except truth love and real life not explain anything garbage

GarouNguyen
Автор

I was searching for a conscised list to practice DSA questions covering all major concepts, and here it is! Thanks alot ! @GregHogg, YOu are doing awsome job and helping millions ! keep it up!
I would need more questions from easy to hard level on bit manipulation i feel less confident on this one

bhagyashreepani
Автор

Thank you very much for the explanantion. I was stuck on this problem but you explained it in a very simple and straightforward manner.

sangyetenphel
Автор

Very well explained and the example given is helpful. Thanks for the video.

xinweili
Автор

You're never truly happy if you deceiving people, I don't care how many money you make, if you're bad person or you trick people, lie people, or do bad things to people, you're will never feel happy, truly happy in your heart, we're intrinsically borned to do the right things to people and you have proved that, I have huge respect for you Greg Hogg, when you have that, you understand that, that's more important than anything else, mind is all and today the truth is the world is getting harder and harder, people's mind is fucked and controlled by those garbage system, you have huge respect from me Greg Hogg, I wish you all the best things in your life with your dreams, with love & truth, who the fuck doesn't gonna to love you? You're so fucking amazing, thank you so much bro I fucking love you and I think people are fucking love you too, so much respect for you bro

GarouNguyen
Автор

Thank you so much for explaining it so clean !

hrushirajg
Автор

I just came from the reels and i could not be happier

Lil.Mushroom
Автор

Amazing content as usual! I enjoy watching your solutions after I try implementing by myself

onurucar
Автор

Man, Ive watched 2 solutions and the condition of while loop still bugs me. Lets say we reach nums_zeros > k, how is the left pointer being a zero, opening more room to flip 0? Arent we already at a 0 witht the right pointer? How would the left pointer being a 0 reduce the amount of zero if the right pointer is at a zero as well? confusing :(

edit: nervermind, I understood. The left pointer nums being 0 allows more flips because we're not counting it anymore in the subarray.

oeseven
Автор

You could keep track of the the first zero in the window, that way you wont have to loop to shrink the window when needed

RIAM
Автор

Hi Greg,

Thanks for the amazing video and explanation. I have a quick question on the code implementation.

On line 12, I do not think the while loop runs more than once. Because we are flipping one zero at a time with the help of the condtion above it (Line 9).
Example, if we have flipped 3 zeroes and k = 2 and our intention is to get back one zero (num_zeroes -= 1), we run through the while loop to decrement. But here, after the first iteration of while loop, the condition evaluates to false (2 > 2). This is because we incremented num_zeroes from 2 to 3 (We are flipping one zero at a time).

So, my question is to know the intention of selecting a while loop on Line 12.

Since, while loop doesn't work for more than one time, I replaced it with a simple if condition. So, Line 12 will become, if (num_zeroes > k): num_zeroes -= 1.
The code will still work for all the cases.

Here's my code:

class Solution:
def longestOnes(self, nums: List[int], k: int) -> int:
left = 0
max_num = 0
num_of_zeroes = 0

for index, num in enumerate(nums):
if num == 0:
num_of_zeroes += 1

if num_of_zeroes > k:
if nums[left] == 0:
num_of_zeroes -= 1
left += 1

max_num = max(max_num, index - left + 1)

return max_num

bhuvanachandrag
Автор

Hi Greg, great videos! Would you mind sharing the tools you are using to explain the question?

qinyunli
Автор

Great video buddy 👏🏻! Would love more such . Can u also cover some math and bit manipulation questions?

niranjanbhat
Автор

IMHO, sliding window algos are very elegant

Sntia
Автор

Hi Greg, Nice Explanation.What drawing tool do you use ?

basic--advance
Автор

Hey Greg, love your videos! please in future dont use 'l' as a variable, use 'left'. a single 'l' looks very similar to '1'

scottcooper