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
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.
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
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.
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.
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
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.
best video on sliding window maximum problem
cap
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.
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
Thanks Striver
thanks for showing a unsorted data version. Data is never sorted!
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
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.
Who's here after 50/51 testcases passed 😢
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
GOT YOU BOTHER RAJ
thanks bhaiya
understood!
Bhya ❤👍👍
tysm sir
UNDERSTOOD;
thanks sir
SANK YOU, THANK YOU
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
understood
From where can I understand it 😂
😄
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