L4. Max Consecutive Ones III | 2 Pointers and Sliding Window Playlist

  Рет қаралды 46,625

take U forward

take U forward

3 ай бұрын

Notes/Codes/Problem links under step 10 of A2Z DSA Course: takeuforward.org/strivers-a2z...
Entire playlist: • Two Pointer and Slidin...
Follow us on our other social media handles: linktr.ee/takeuforward

Пікірлер: 71
@animexworld6614
@animexworld6614 3 ай бұрын
I may not comment on all your video. But I do watch them till last
@ouuualo9947
@ouuualo9947 3 ай бұрын
Solved by myself before but can't skip your video. Nice one!
@iam_bantu
@iam_bantu 3 ай бұрын
Lol... Me also😅
@krishnavamsiyerrapatruni5385
@krishnavamsiyerrapatruni5385 3 ай бұрын
I've always had a problem with two pointer + sliding window problems. I've solved a few in Leetcode by reading the editorials. I understood them at that point of time but couldn't apply them again in the future as I just couldn't wrap my head around them. But now the intuition kicked in after watching the first few videos of your playlist and I'm able to visualise the algo while solving problems. Thank you so much!!! :)
@AbhijayaPal-dq3zt
@AbhijayaPal-dq3zt 19 күн бұрын
sliding window and two pointer approach best playlist, thank you so much raj (our striver)
@studyafa7159
@studyafa7159 3 ай бұрын
3:43 brute 4:45 brute code 7:55 better 13:45 better code 17:00 better T(0) 19:20 best 24:46 - 26:48 best code
@user-wv5ei5cc2w
@user-wv5ei5cc2w Ай бұрын
Aala11
@akshatdubey4421
@akshatdubey4421 Ай бұрын
I could implement this myself in the first try, thanks for helping me gain confidence raj.
@user-sz1rm7bj7r
@user-sz1rm7bj7r 3 ай бұрын
Good video ! Wasn't expecting the last solution, took me some time to think but definitely made my brain work. The main logic is that once we have found a subarray with 2 zeros of size 5, as discussed in example, and a subarray with 2 zeros of size 6 exists... then once we reach subarray of size 5, we do not shrink our sliding window. And we keep moving it ahead by moving both left and right pointers. Once we reach the subarray of size 6, our sliding window's right pointer is updated while left keeps calm, and sliding window size is updated to 6. I hope it helps.
@namannema3349
@namannema3349 2 ай бұрын
these explaining style is good striver please make more videos like that only
@ShahNawaz-cx3pi
@ShahNawaz-cx3pi Ай бұрын
Another Approach:- class Solution { public: int longestOnes(vector& nums, int k) { int size = nums.size(); int l = 0; int r = 0; vectorind; int i = 0; int ans = 0; for(int i = 0;i
@harshchaudhari1874
@harshchaudhari1874 10 күн бұрын
00:06 Solving the Max Consecutive Ones III problem using two-pointer and sliding window techniques. 02:57 Finding longest subarray with at most K zeros. 07:43 Implementing sliding window technique with two pointers 10:13 Sliding window technique helps in efficiently handling zeros in the array. 15:10 Maintain sliding window to count consecutive ones with up to K flips 17:40 Using sliding window to find maximum consecutive ones with K flips 22:01 Using two pointers and sliding window to find maximum consecutive ones with allowed updates. 24:13 Using 2 pointers and sliding window to find max consecutive ones with k allowed flips 28:58 Algorithm works by avoiding moving L extremely to the right
@Cool96267
@Cool96267 Ай бұрын
Thankyou so much Striver for all you efforts throughout in delivering us so much valuable content. Any student / working professional can now be able to transition their career without paying money for courses. Would also like your insights on the point : While preparing for interviews most of the aspirants are going through the videos solely and solving the question after completely watching the video. And also are feeling lazy trying to solve the question on our own. What is the best way to complete any topic without being lazy and how should an aspirant approach any topic/playlist?
@dhineshkumard7639
@dhineshkumard7639 3 ай бұрын
class Solution { public int longestOnes(int[] nums, int k) { int l=0,r=0,max=0,zero=0,n=nums.length; while(rk){ if(nums[l]==0) zero--; l++; } if(zero
@shibainu7500
@shibainu7500 2 ай бұрын
OMG i solved it by myself. Idk if it was an easy question but your lectures are super helpful.
@SanjayChandramohan-lq3wp
@SanjayChandramohan-lq3wp 3 ай бұрын
Quality teaching brother... love you
@adarshmv261
@adarshmv261 2 ай бұрын
Great job... putting out this playlist. And, I don't see notes out there in TuF website?? for 2P and Sliding Windw problems
@SethuIyer95
@SethuIyer95 3 ай бұрын
Thank you!
@PratapSingh-yg8tc
@PratapSingh-yg8tc 2 ай бұрын
very thankful to you
@user-cb4go8xu3i
@user-cb4go8xu3i 2 ай бұрын
in worst case lets assume all array elements are zero and k=0 it takes still 0(2n) the most optimal one
@knowthrvdo
@knowthrvdo Ай бұрын
AWOSOME LECTURE. I SOLVED THIS QUESTION BY MYSELF !!!!
@SahilRaj-yp2zu
@SahilRaj-yp2zu 13 күн бұрын
we can also use a queue instead of nested loop , Here the time complexity is O(N), and the space complexity is O(N) int max =0, l=0,r=0; Queue index =new LinkedList(); int zero =0; while(rk){ l=index.poll() +1; zero--; } } max =Math.max(max, (r-l+1)); r++; } hope you like my solution🙂
@PrinceKumar-ef1xf
@PrinceKumar-ef1xf 18 күн бұрын
00:06 Solving the problem of finding the maximum consecutive ones with at most K zeros. 02:57 Using sliding window to find longest subarray with at most K zeros 07:43 Using sliding window to find maximum consecutive ones with K zeros. 10:13 Using sliding window technique to manage consecutive ones and zeros efficiently 15:10 Use a sliding window technique to handle scenarios with more zeros than K. 17:40 Optimizing Max Consecutive Ones III using sliding window technique 22:01 Illustration of updating max consecutive ones with sliding window approach 24:13 Algorithm to find max consecutive ones after K flips. 28:58 Algorithm works with time complexity of O(n) and space complexity of O(1).
@t-anime517
@t-anime517 3 ай бұрын
dhanyawad guru ji🙏
@mount2020
@mount2020 3 ай бұрын
Do your previous website also exist? I have notes for questions attached there, I am not able to find it
@mr_weird3680
@mr_weird3680 3 ай бұрын
Thanks Brother💌
@TanmayDwivedi-tu6lv
@TanmayDwivedi-tu6lv Ай бұрын
another approach class Solution { public: int longestOnes(vector& nums, int k) { int n = nums.size(); // Get the size of the input vector int ans = 0; // Variable to store the maximum length of subarray with at most k zeros int ct = 0; // Variable to count the number of zeros encountered vector v1; // Vector to store the cumulative count of zeros // Traverse the input vector to fill the cumulative count of zeros for (int i = 0; i < n; i++) { if (nums[i] == 0) { ct++; // Increment the count if the current element is zero } v1.push_back(ct); // Add the cumulative count to the vector } int j = 0; // Left pointer of the sliding window int g = k - 1; // Right pointer of the sliding window if (k == 0) { g = 0; // Handle edge case when k is 0 } // Traverse the input vector using the sliding window approach while (g < n && g < v1.size()) { // Ensure g does not go out of bounds // Calculate the number of zeros in the current window int temp = v1[g] - (j > 0 ? v1[j - 1] : 0); if (temp
@unknown2698
@unknown2698 15 күн бұрын
Thankyou bhai very Good explanation
@codeman3828
@codeman3828 3 ай бұрын
Understood. thanks
@riteshbisht94
@riteshbisht94 2 ай бұрын
Great 🔥😃
@AnuragSingh-xe1nm
@AnuragSingh-xe1nm 13 күн бұрын
C++ CODE BASED ON THIS LOGIC. class Solution { public: int longestOnes(vector& nums, int k) { int n = nums.size(); int left = 0, right = 0, maxlen = 0, count0 = 0; for(right = 0; right < n; right++) { if(nums[right] == 0) { count0++; } while(count0 > k) { if(nums[left] == 0) { count0--; } left++; maxlen = max(maxlen, right - left + 1); } return maxlen; } };
@ok-jg9jb
@ok-jg9jb 3 ай бұрын
Thanks❤
@user-nm2wc1tt9u
@user-nm2wc1tt9u Ай бұрын
class Solution { public: int longestOnes(vector& nums, int k) { // Brute force int length = 0; int maxLen = 0; for(int i=0;i
@subee128
@subee128 3 ай бұрын
Thanks
@SuvradipDasPhotographyOfficial
@SuvradipDasPhotographyOfficial 26 күн бұрын
Solved it on my own after seeing the brute force. Buit I used a deque making it more simple class Solution { public: int longestOnes(vector& nums, int k) { int i = 0, j = 0, zeroes = 0; int ans = INT_MIN, len = 0; int n = nums.size(); deque q; while(j < n){ if(nums[j] == 0){ zeroes++; q.push_back(j); } if(zeroes > k){ zeroes--; int x = q.front(); i = ++x; q.pop_front(); } len = j - i + 1; ans = max(ans, len); j++; } return ans; } };
@Shantisingh-tz5sr
@Shantisingh-tz5sr 3 ай бұрын
You are amazing....wowwwwwwwwwwwwwwwwwwwwwwwwwwwww
@mvikramaditya8264
@mvikramaditya8264 Ай бұрын
sir I can't understand how to take length like j-i+1 and some times other length can you give me any idea
@priyanshugagiya
@priyanshugagiya 3 ай бұрын
16:21 if condition is not required while is doing the same thing
@immrhrr
@immrhrr Ай бұрын
int longestOnes(vector& nums, int k) { int i = 0, j = 0; int n = nums.size(); int zero = 0; int maxi = 0; while (j < n) { if (nums[j] == 0) { zero++; } while (zero > k) { if (nums[i] == 0) { zero--; } i++; } maxi = max(maxi, j - i + 1); j++; } return maxi; }
@neilbohr6015
@neilbohr6015 2 ай бұрын
i didn't understand one thing in most optimum sol by the time "R" reaches end "L' has traversed N-k (k is some constant) so shouldn't time complexity be O(N+N-k) which is same as O(2N)🤔🤔
@rudreshpatel6135
@rudreshpatel6135 Ай бұрын
Hey, I have 1 question . What if number of 0's are less than K so we have to flip all zeros and then k-no. of zeros times we have to flip 1 as well, right? How will we able to solve that question?
@studyafa7159
@studyafa7159 3 ай бұрын
code have not been updated in striver link
@shototodoroki4719
@shototodoroki4719 3 ай бұрын
understood
@avanishmaurya2034
@avanishmaurya2034 8 күн бұрын
great
@Saket-op2xp
@Saket-op2xp Ай бұрын
int main() { int size_arr , flips ; cin >> size_arr >> flips ; vector arr(size_arr,0) ; vector arr0(size_arr + 2 ,0); int count = 0 ; arr0[count] = -1 ; for(int i = 0 ; i < size_arr ; i++){ cin >> arr[i] ; if(arr[i] == 0){count++; arr0[count] = i ; } } count++; arr0[count] = size_arr ; int l = 0 ; int r = l + flips + 1 ; int max_len = arr0[r] - arr0[l] - 1 ; while(r < count + 1){ r++ ; l++ ; max_len= max(max_len,arr0[r]-arr0[l] - 1) ; } cout
@pranayramteke2848
@pranayramteke2848 3 ай бұрын
Understood
@rajharsh3739
@rajharsh3739 3 ай бұрын
change while to if and we trim TC from O(2n) to O(n) . VOILA 👍👍
@unknown2698
@unknown2698 15 күн бұрын
My solution with same logic class Sliding_window { public static void main(String[] args) { int[] arr = {1,1,0,1,1,1,0,1,0,1,1,1,0,1}; int k =2; int l=0,r=0,zeros =0,max=0; while(r< arr.length){ if(arr[r] == 0){ zeros++; } if(zeros>k){ if(arr[l]==0){ zeros--; } l++; } if(zerosmax){ max = r-l+1; } r++; } System.out.println(max); } }
@socify4410
@socify4410 Ай бұрын
SOLVED BY MYSELF BUT SKIPPING VIDEO MAY COST ME LOSE OF MOST OPTIMAL SOLUTION ❤‍🔥❤‍🔥
@RajeevCanDev
@RajeevCanDev Ай бұрын
In GFG the most optimized approach is giving out TLE with some 50 Testcases left out of 500, and the better one which uses two while loops is passing out all the test cases without TLE! WHY IS THAT SO?
@angeldeveloper
@angeldeveloper 3 ай бұрын
🙌🏻
@agnivadutta969
@agnivadutta969 3 ай бұрын
How is the optimal code running on an example like: arr = [1,0,1,0,1,0,1,0], k=1. Isn't the left pointer traversing near about n times as well?
@priyanshugagiya
@priyanshugagiya 3 ай бұрын
You are asking If we access value 3 times in one loop it will be 3n I hope you got why it would be n
@ManishKumar-dk8hl
@ManishKumar-dk8hl 3 ай бұрын
TC - O(N) class Solution { public int longestOnes(int[] arr, int k) { int r=0; int l=0; int maxlen=0; int zeroes=0; while(rk){ if(arr[l]==0){ zeroes--; } l++; } if(zeroes
@_priynshu
@_priynshu 3 ай бұрын
18:50 There is a while loop inside another while loop. Then how come Time complexity in worst case is O(n)+O(n) and not O(n^2)?
@RK-Sonide4vr
@RK-Sonide4vr 3 ай бұрын
Because for every element it is not running for n times. Even in worst case , it runs for n times for last element only.
@_priynshu
@_priynshu 3 ай бұрын
@@RK-Sonide4vr gotcha
@amansaini4969
@amansaini4969 2 ай бұрын
@@RK-Sonide4vr still it runs N time inside a N time running while loop so why not n^2?
@brokegod5871
@brokegod5871 7 күн бұрын
@@amansaini4969 It does not run N times inside the N. You need to imagine what an actual n^2 loop is like - It means that for every value till N of outer loop, the inner loop is running N times ALWAYS. It's not always here. The outer loop runs for N times surely, but are you always updating the ith pointer in every value of the outer loop? Let's say there are 8 numbers, 5 1's and then 3 0's and the K = 1. That means your outer loop will move one by one to the first 0 after crossing 5 1's, but did you actually run the inner loop while crossing each and every 1? You only run that inner loop just when the condition is violated which does not happen ALWAYS as it should be in n^2. Take the worst case, where at the end you have 3 zeroes and K = 2. In that case, the inner loop has to cover till n-2 index which is near about N, but it did in ONE instance of outer loop, not for every instance of outer loop for it to become multiplicative. As it happened for one instance, it got added up and became 2N.
@MaheshPatil-of1zy
@MaheshPatil-of1zy 3 күн бұрын
Optimal Approach Not Working
@SAACHIPANDEY
@SAACHIPANDEY Ай бұрын
19:20
@user-gk4zy6bk7l
@user-gk4zy6bk7l 2 ай бұрын
god
@priyankapatil6783
@priyankapatil6783 13 күн бұрын
How about this solution public int longestOnes(int[] nums, int k) { int i=0; int l=0; for(i=0;i
@dayashankarlakhotia4943
@dayashankarlakhotia4943 3 ай бұрын
public int longestOnes(int[]nums,int k){ int l=0,r; for(r=0;r
@cenacr007
@cenacr007 Ай бұрын
us
@pritamiitismdhanbad561
@pritamiitismdhanbad561 3 ай бұрын
I don't know why but whenever i am watching these problem statements of two pointer, the first idea striking on my mind is a dp state🥲...then soon understanding dp is having at least 2 states so gotta optimise it
@user-yv9sz1fg1n
@user-yv9sz1fg1n 16 күн бұрын
understood
@shaiksoofi3741
@shaiksoofi3741 23 күн бұрын
understood
@ramakrishnakcr4417
@ramakrishnakcr4417 3 ай бұрын
understood
L5. Fruit Into Baskets | 2 Pointers and Sliding Window Playlist
30:02
take U forward
Рет қаралды 36 М.
L12. Minimum Window Substring | 2 Pointers and Sliding Window Playlist
27:06
Happy 4th of July 😂
00:12
Pink Shirt Girl
Рет қаралды 62 МЛН
아이스크림으로 체감되는 요즘 물가
00:16
진영민yeongmin
Рет қаралды 57 МЛН
Max Consecutive Ones (LeetCode 1004) | Full Solution w/ animations
14:41
Why I Chose Rust Over Zig
33:18
ThePrimeTime
Рет қаралды 83 М.
How I would learn Leetcode if I could start over
18:03
NeetCodeIO
Рет қаралды 339 М.
❌ Don't Run Behind 500 LEETCODE Problems ❌ Focus on QPCD
8:31
50 Unique Valorant Mechanics
10:02
MrLowlander
Рет қаралды 60 М.
L1. Introduction to Sliding Window and 2 Pointers | Templates | Patterns
36:55
The Algorithm Behind Spell Checkers
13:02
b001
Рет қаралды 407 М.