We use a deque to maintain the k elements and find maximums easily. When we find an element in the array greater than the top element, we remove lower elements from the deque since the max is changing. We continue this until we find a bigger element in the deque than the current element in the array. When i > k - 1, we add the answer because our window is at least k elements wide. We also maintain the correct size by checking i - k
Actually, if you look at the complete playlist he has actually helped build the NSE, PSE & monotonic stack based concepts. So if one follows that, the intuition for the above will be quiet easy. TBH I was able to figure out the intuition, but I got stuck as I had never applied Deque based DS yet so that was the learning for me.
some unimportant info: deque is pronounced as “deck.” for eg: deck of cards .. it is short form of double-ended-queue .. anyway concept is important not names
Bhaiya, after seeing you solve the example, without even seeing you write the pseudo code I was able to solve the question by myself. Thing is, I am not able to think of the approach till you solved the example. I don't know how to come up with the approach myself.
can we use a deque of size k 1. if deque empty: insert element -> update maxi 2. while size of deque < k: add element and update maxi 3. if size of deque == k: update our ans array with maxi and remove the first element from the deque.
i tried implementing a max queue but i dont know where I am failing , even chatgpt is not suggesting any good corrections. void push(queue& q,int& Max,int x){ if(x>Max) { q.push((x-Max)+x); Max = x; } else q.push(x); } void pop(queue& q,int& Max){ if(q.front() >= (Max + Max - q.front())){ Max = Max - (q.front()-Max); q.pop(); } else q.pop(); } int front(queue& q,int& Max){ if(q.front()>Max){ return Max; } else return q.front(); } vector maxSlidingWindow(vector& nums, int k) { int n = nums.size(); vector res(n-k+1); queue q; int maxq = -100000; for(int i = 0;i
Hello everyone, my placements are starting in March 2025. I have started learning DSA using the TakeUforward SDE sheet and have completed the first 10 problems. However, I was able to understand only 3 of them, and I am struggling to build logic on my own. I am unsure if I am on the right track or where to start. Could you please give me some advice on how to approach solving problems independently and where I should begin? I have programming knowledge but need guidance. I am not aiming to join a big MNC company, but I want to prepare effectively.
Here are few tips from my personal experience. 1) Get your basics strong. No matter how much time you spend on DSA, if you don't have your basics correct, you will struggle. 2) Try to visualize the problem. According to me if you are able to visualize the question, you have already solved 50% of the problem. 3) Try to start with basic questions like on string, arrays, recursion. Don't concentrate more on time complexity in the beginning, but you should be able to come up with brute force approaches. 4) Move to concept wise questions only once you have done the above pointers. This is the flow i followed Arrays -> Binary Search -> Sorting -> Linked List -> Stacks&Queues -> Greedy -> Binary Tree -> Graphs -> Dynamic Programming. You should be able to come up with optimized approach for all if you are looking for FAANG companies.
Good post, slow down the releases and you’ll get more views. Nobody can handle viewing and reviewing and learning 3-4 leetcode problems a day. Maybe a speed of one every few days is better
That's personal issue, he's already working in a company so as per his valuable time he uploads video's just for us,insteading of asking him for slow releases you yourself can manage your time as you are in need not him.
@@sarveshkulkarni6287 Of course I can manage my time. My suggestion is not for me, but for his channel. Most people will skip multiple videos if the speed of delivery is too fast. So (for his channel and engagement) I made the suggestion that he should slow the release, that way he will get more clicks. Monetizing youtube videos is not as simple as one would think. You only make money on the views during the first few days of the videos release. If he releases multiple videos and the majority of the engagement/views are not immediate, he will not get much money from releasing this content.
We use a deque to maintain the k elements and find maximums easily.
When we find an element in the array greater than the top element, we remove lower elements from the deque since the max is changing.
We continue this until we find a bigger element in the deque than the current element in the array.
When i > k - 1, we add the answer because our window is at least k elements wide.
We also maintain the correct size by checking i - k
nice summarisation
yes but in the worst case it gives O(n*n)(~brute force) , which should be avoided right
that's why we are using the extra space
I dont comment usually but i would suggest to look the same que from his old playlist. He has explained better there.
Only one person can do better than him. That's himself.
Actually, if you look at the complete playlist he has actually helped build the NSE, PSE & monotonic stack based concepts. So if one follows that, the intuition for the above will be quiet easy. TBH I was able to figure out the intuition, but I got stuck as I had never applied Deque based DS yet so that was the learning for me.
some unimportant info:
deque is pronounced as “deck.” for eg: deck of cards .. it is short form of double-ended-queue .. anyway concept is important not names
wow
Bhaiya, after seeing you solve the example, without even seeing you write the pseudo code I was able to solve the question by myself. Thing is, I am not able to think of the approach till you solved the example. I don't know how to come up with the approach myself.
best video on sliding window maximum problem
cap
thanks for showing a unsorted data version. Data is never sorted!
Thanks Striver
can we use a deque of size k
1. if deque empty: insert element -> update maxi
2. while size of deque < k:
add element and update maxi
3. if size of deque == k:
update our ans array with maxi and remove the first element from the deque.
His previous video on same topic explains same concept very detaily
yes bro
striver not teaching well as compare with old video only expression giving
Yes, I also felt the same. He is not teaching in this playlist like earlier all playlist
I agreed. This Stack and Queue playlist is bad tbh.
Bhai ek toh dono data structures ko ek hi playlist mein kyu add kar diya 🤦♂️
Felt the same, i am going back and checking his old video:)
Bhai course launch karne ke baad mindset pura badal jaata hai...
@@Ayush37262 right
i tried implementing a max queue but i dont know where I am failing , even chatgpt is not suggesting any good corrections.
void push(queue& q,int& Max,int x){
if(x>Max) {
q.push((x-Max)+x);
Max = x;
}
else q.push(x);
}
void pop(queue& q,int& Max){
if(q.front() >= (Max + Max - q.front())){
Max = Max - (q.front()-Max);
q.pop();
}
else q.pop();
}
int front(queue& q,int& Max){
if(q.front()>Max){
return Max;
}
else return q.front();
}
vector maxSlidingWindow(vector& nums, int k) {
int n = nums.size();
vector res(n-k+1);
queue q;
int maxq = -100000;
for(int i = 0;i
Hello everyone, my placements are starting in March 2025. I have started learning DSA using the TakeUforward SDE sheet and have completed the first 10 problems. However, I was able to understand only 3 of them, and I am struggling to build logic on my own. I am unsure if I am on the right track or where to start. Could you please give me some advice on how to approach solving problems independently and where I should begin? I have programming knowledge but need guidance. I am not aiming to join a big MNC company, but I want to prepare effectively.
Here are few tips from my personal experience.
1) Get your basics strong. No matter how much time you spend on DSA, if you don't have your basics correct, you will struggle.
2) Try to visualize the problem. According to me if you are able to visualize the question, you have already solved 50% of the problem.
3) Try to start with basic questions like on string, arrays, recursion. Don't concentrate more on time complexity in the beginning, but you should be able to come up with brute force approaches.
4) Move to concept wise questions only once you have done the above pointers. This is the flow i followed Arrays -> Binary Search -> Sorting -> Linked List -> Stacks&Queues -> Greedy -> Binary Tree -> Graphs -> Dynamic Programming. You should be able to come up with optimized approach for all if you are looking for FAANG companies.
Who's here after 50/51 testcases passed 😢
GOT YOU BOTHER RAJ
From where can I understand it 😂
thanks bhaiya
understood!
thanks sir
Understood
tysm sir
Bhya ❤👍👍
UNDERSTOOD;
understood
SANK YOU, THANK YOU
understooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooood !?!?!! IDK
😄
first
Good post, slow down the releases and you’ll get more views. Nobody can handle viewing and reviewing and learning 3-4 leetcode problems a day. Maybe a speed of one every few days is better
apni suggestion apne paas rkh
That's personal issue, he's already working in a company so as per his valuable time he uploads video's just for us,insteading of asking him for slow releases you yourself can manage your time as you are in need not him.
@@sarveshkulkarni6287 Of course I can manage my time. My suggestion is not for me, but for his channel. Most people will skip multiple videos if the speed of delivery is too fast. So (for his channel and engagement) I made the suggestion that he should slow the release, that way he will get more clicks.
Monetizing youtube videos is not as simple as one would think. You only make money on the views during the first few days of the videos release. If he releases multiple videos and the majority of the engagement/views are not immediate, he will not get much money from releasing this content.
@@WebSurfingIsMyPastime bro jisne padna vo channel search kr ke pad lega.
@@WebSurfingIsMyPastimeWhy are you considering that only first few days would account for the views? Think about the long run mate.
understood