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
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.
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
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
Master Data Structures & Algorithms For FREE at AlgoMap.io!
The clearest explanation and visualization I've ever seen on sliding windows .....keep them coming.
Oh I'm really glad to hear that 😊
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
Haha thanks so much 😊
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
Best explanation so far!
Thank you very much for the explanantion. I was stuck on this problem but you explained it in a very simple and straightforward manner.
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.
I just came from the reels and i could not be happier
Oh glad to hear this helped! :)
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
Awe that's so sweet thank you 🥰
Very well explained and the example given is helpful. Thanks for the video.
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
Amazing content as usual! I enjoy watching your solutions after I try implementing by myself
That's awesome, that's a really good way to do it 🙂🙂
Thank you so much for explaining it so clean !
Very clear explanation, thanks!
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
Hi Greg, great videos! Would you mind sharing the tools you are using to explain the question?
Great video buddy 👏🏻! Would love more such . Can u also cover some math and bit manipulation questions?
Will do, and thanks so much 😁
THANK YOU SO MUCH!!!!
Excellent answer 🎉🎉🎉🎉
Very happy to hear it :)
IMHO, sliding window algos are very elegant
They really are 😊
Hey Greg, love your videos! please in future dont use 'l' as a variable, use 'left'. a single 'l' looks very similar to '1'
That's a great point lol. Thanks so much!!
Hi Greg, Nice Explanation.What drawing tool do you use ?
Thank you! I use miro :)
@@GregHogg Thanks, Keep up with good work.
Great
big ups