6 Stock Span Problem
HTML-код
- Опубликовано: 10 фев 2025
- The stock span problem is a financial problem where we have a series of n daily price quotes for a stock and we need to calculate span of stock’s price for all n days.
The span Si of the stock’s price on a given day i is defined as the maximum number of consecutive days just before the given day, for which the price of the stock on the current day is less than or equal to its price on the given day.
For example, if an array of 7 days prices is given as {100, 80, 60, 70, 60, 75, 85}, then the span values for corresponding 7 days are {1, 1, 1, 2, 1, 4, 6}
Refer: www.geeksforge... .
------------------------------------------------------------------------------------------
Here are some of the gears that I use almost everyday:
🖊️ : My Pen (Used in videos too): amzn.to/38fKSM1
👨🏻💻 : My Apple Macbook pro: amzn.to/3w8iZh6
💻 : My gaming laptop: amzn.to/3yjcn23
📱 : My Ipad: amzn.to/39yEMGS
✏️ : My Apple Pencil: amzn.to/3kMnKYf
🎧 : My Headphones: amzn.to/3kMOzM7
💺 : My Chair: amzn.to/385weqR
🛋 : My Table: amzn.to/3kMohtd
⏰ : My Clock: amzn.to/3slFUV3
🙋🏻♀️ : My girlfriend: amzn.to/3M6zLDK ¯\_(ツ)_/¯
PS: While having good gears help you perform efficiently, don’t get under the impression that they will make you successful without any hard work.
Thanks, man. @Aditya Verma
Anyone who just watched the video for 5 minutes and they got the solution on their own should still like the video because He did hard work explaining it. And because of his previous videos, we were able to solve it.
Thanks brother, Do subscribe and share, that keeps me motivated to do more !!
@@TheAdityaVerma I am at NIT Surathkal and currently preparing for internship interviews . You DP videos are helping me a lot .
@@TheAdityaVerma what if the given array is [100 86 78 89 1000]
true
@@mohsinabbassayyed9610 ngl of 1000 will be -1 and index of 1000 is 4 so if u do ngl index-i that is 4-(-1)=5 will be the answer
Amazing work.. even paid courses don't have explanations anywhere near this level..Please make videos on Graph too!
@@niru1931 agree
@@niru1931 acha nahi hai kya bhai coding ninja
@@raheman5913 free hai???
@@AdilofiMelody
agree
100000 % agree.
A more optimized solution, rather than storing pair in the stack, we can just solely store the NGL index itself, that will also work :
vector calculateSpan(int price[], int n)
{
vector ans;
stack s;
for(int i=0; i
dangg that's good!
you don't need that separate loop for populating ans vector, you can do it on the go:
vector calculateSpan(vector& v) {
// write code here
int n = v.size();
stack st;
vector ans(n,-1);
for(int i = 0;i
This is my first ever comment on you tube and without a single doubt your teaching skills make me do that. Great Work Man ☺️
Eagerly waiting for new playlists..
Thanks! 😅✌️
Watching this again for nostalgia's sake.
😂😂😂😂
I saw the explanation of this question in a very famous paid course. However they still failed to mention the intuition of arriving at this solution using stack, loved how you broke it into the NGL problem and the overall intuition behind it
i bet IITians are watching videos of this NIT guy. Good going man.
Me : IIT kgp 😂
Me IIT:not selected
Me : Amity university
Me : IIT Delhi
Me . iitpatna
Bhaiya aap na main last year main hu tier 3 clg mein and maine dsa start kr rkhi h to stacks search kia to aapki videos mili...and aap manoge nhi mera concept itna awsm bn rha h na stacks mein ki kya hi btau...schi mein kafi shi pdhate ho aap... great job...keep it up... I've subscribed too... Thanks for making my concepts clear... FROM JAIPUR
the way you connected with NGL problem, hats off brother. you're an inspiration.
Got the solution at 2:59 only, that how we can solve this.
Great great great great great coding, programming, problem solving master.
The only person who made not only dp but entire programming and problem solving easy.
The guy who made entire programming and problem solving easy.
Hats off to you bro. 🤘🤘🤘😀☺️🎉🎉🎉🙏🙏🙏🙏🙏🙏
Awesome series. I was able to it myself 😃
I wish he made videos for rest of the topics as well. He is an amazing teacher !!
Thankyou aditya
i have not seen any playlist of this channel other than this stack playlist......but i must say, its killing it. My stack understanding and problem solving has improved a lot , every other channel like anuj bhaiya , love baber , khuswaha has not explained as clear as him. Thank u @Aditya Verma Bhaiya😇
just commenting to remind you that even after 1 year this video is helping many people like me. KUDOS to you.
The first Four Foundation problem was a neat trick before getting to this problem, you made the viewer use his intuition to get to the solution.
There may be many better programmer than you, but I have not seen better teacher than you for sure. The way you teach in flow is soo dope. thank you so much.
I found one more thing in my life to be thankful for 🥺.
Almost three year passes, but no one can make better content then you, you are such a genious.
apko kaise thanks bolo bhaiya ...aap itna acha padhate ho mujhse stack ke ques solve hone lge...thanks bhaiya
I'm a fresher and I completed all the data structures playlist .
Thanks
first time someone explained like this............great content..thanksssssssssssssss alot..u r amazingggggggggggggggggggggggggggggggg..
I just imagined the explanation just by hearing the problem statement hats off to you
..
Just watched the explanation of the question. Got the intuition and solved it on my own in less than 5 min. Amazing work @AdityaVerma!!
Thanks for taking time out from your schedule and sharing the knowledge with all of us
Wanted all dsa by you bro. You just rock the dsa.
Sucha a unique and beautiful way of teaching. You are really an awesome tutor. Yesterday i watched Coding Blocks video and today after watching your video i know that you are in a complete different level. And that also we get your outstanding content and experience for free. This is so thankful of you.
Kya beta, mjaa aa rha hai na!
I was able to do the answer myself after watching the problem statement part. Really these lectures are terrific.
Instead of making an index vector, I simply made a pair with the answer that we have to return.
So instead of traversing loop 2 times, we can do it in one traversal only.
vector calculateSpan(int price[], int n)
{
// Your code here
vector ans;
stack S;
for(int i=0;i
Same here bro . I too solved using same approach
Slight optimisation for time complexity
Just store the index of the elements in the array and code as following :
stack s;
for(int i=0; i
there is a leetcode editorial for this question which has O(1) amortized time complexity. Running a for loop for each call to next() is not needed. The key idea behind this approach is that the "answer" for a previous "price" can be directly added to the current answer, if current price is greater.
sir you are really the best teacher out there
Man you are good the way teach you is just incredible,subscribed and share done . I already recommended your DP playlist to my juniors !! LOVE FROM NITW!!
yes bhaiya zindagi me kohi batayga must phadtey ho app....huge support bhaiya.....
If I got your series 3 years back perhaps I might not waste my b.tech years 🙌
Might...
explain in very simple manner , thanks sir, now i am able to move standard/tough or tricky method
thank you so much for easy explanation
The best person who is teaching in the BEST way! Very Very Helpful content :)
Hattsss off to you sir!! You are just remarkable and phenomenon!! Please do post more videos like this,so that we can learn more from you!Thanks alot!
I solved this question without using pair. As we can do price[s.top()] .Thanks @Aditya for such a strong foundation.
Thank you so much for creating this videos. I have written the whole code by understanding the theory and with the help of previous videos. Great work sir. Thank you.🙏
Great work man, was really helpful.
One can see depth of your grasp on what you teach.
ese problems mere dimag ke upar se jata hai aur yeh tutorial tho aag laga di. thanks bhaiya :)
I implemented this using a double stack method, but yours is cleaner.
more importantly, it follows the same pattern as you said, so it's easier.
i have been watching your videos for quite sometime now,and i am able to solve/code just by watching your explanation thanks bhaiya and your identification techniques is just mind blowing
without using a pair in stack :
#include
vector findSpans(vector &price) {
stack s ;
int n = price.size() ;
vector ans(n) ;
for(int i = 0 ; i < n ; i++ ) {
int curr = price[i] ;
while( !s.empty() && price[s.top()]
Python Code:
i=0
while i0 and stack[-1][1]0:
difference=i-stack[-1][0]
ans.append(difference)
else:
ans.append(i+1)
stack.append((i,arr[i]))
i+=1
print(ans)
Thanks @Aditya Verma. Your way of teaching is hands down the best. Even professors cannot teach in this way. Please make some videos on Queues and Linked Lists as well.
I am really fan of your way of teaching and explaining each and every concept
great bhai sach me zabardast...
the flow.....😎
maine khud se kar liyaa ye question ,What a feeling!! thanks @Aditya Verma
your explainations are really amazing. Please make videos on bit manipulation questions too. With your explanations, students can easily master this topic as well
Please please please Aditya bhai, Keep uploading videos. Your are one person who does not do any stupid things in video, explain properly, and it's all because of you that I am able to grasp the intuition, logic and flow correctly. Please dont stop making videos. Please make videos on graphs, trees, strings topics.
Bhaiya agar aapke jaisa professor college mai ho to sabka placement top product based company mai to hona hi hai. Appne question hi nai pura concept build kar diya Thanks for that!
Bhaiya keep adding more videos ...I don't have words to explain how helpful your videos are..
Heartly, First time I subscribed and liked any playlist on youtuve . Really your explanation is intresting .thanks
bhaiya i never think that, this question is total connect with NGL problem, the way you connect the problem is lit️. thank for providing such a great content!!
Great work. I saw two solution before this vdeo but no one explain as better as you. Thank You fron Pune Institute of Technology Pune, Maharashatra
Simplified Code in Java: github.com/svworld01/100DayOfCodingChallenge/blob/main/day2/StockSpanProblem.java
Brooo you are so awesome. All the people watching this video you are really lucky to have your placements after jan 2020.
Thank you for such a great explanation. You are a gem. I tried to solve this question, tbh I mug up the solution but today I can code it with and can teach it to anyone.
Thanks a ton bhaiya
Mugging up soln is also a way specially in backtracking problems .... what do u think
waah bete moj kardi...tum toh bade heavy driver hoon
thanks bhaiya you are awesome the way you teach is very unique
thanks bhaiya , amazing teaching skills !
I dont think that there is any need of stack of pair, we can solve the question by just using stack of int as following....
vector calculateSpan(int price[], int n){
vector ans;
stack st;
for(int i=0;i
Border problems aside. But you Indians are exceptional programmers.
Love Aditya Verma from Pakistan.
No offence, but I have some questions. Why are you here? Do you even have codings there?
@@RathourShubhamunlike India, only rapes are not present in Pakistan. But otherwise we have many things in common.
Sir , thanks for providing these all important questions at one place.
Sir, please upload the queue and linked list questions also .
class Solution
{
public:
//Function to calculate the span of stock’s price for all n days.
vector calculateSpan(int arr[], int n)
{
// Your code here
stack st;
int count=1;
vector ans;
for(int i=0;i
U are an amazing teacher. Always like how to build the intuition part. Keep the good work going.
never seen an explaination which is this good
dammn awesome man hats off.....
Thanks a lot for this series Aditya. Just trying to optimize this further, we can also do this without 2nd for loop .
const stockSpan = (arr: number[]): number[] => {
const result: number[] = [];
const stack = [];
for (let i = 0; i < arr.length; i++) {
if (stack.length > 0 && stack[stack.length - 1]?.value
Your teaching style us just amazing
rather than storing values in stack we can store index ,therefore ,we don't need pair
All your videos are amazing and super understandable please upload more soon!!
Thanks bro. Effectivelity utilizing my corona time watching your videos.
Thanks for explaining so wonderfully.
The same code approach with slight modification :
public static int[] calculateSpan(int price[], int n)
{
int[] result = new int[n];
Stack stack= new Stack();
for(int i=0; i
Only index, we can put and while comparison we'll take array value at that index for java, bcoz there was no concept for pair, btw, thank you so much for great videos, i love it...
Thank you for the great content bhaiya, waiting for more videos...😍😍
amazing amazing explanation. You teach so well. Thanks a lot
best explanation i've ever seen for this problem... hats off brother...
logic can be simplified to this also....-
// java
//pair is my class having 'val' ans 'ind' as two integer variables
Stack st=new Stack();
int ans[]=new int[n];
for(int i=0;i
can you give the whole code in java
Please share the pair class code
share the whole code please.
Solved without looking at the explanation.
The concept explained in 1st question is enough to tackle these question. Thank You for ur teaching🙌🙌❤
Mind blowing explanation bahiyan❤
Amazing explanations brother! Please make videos on the graph as well.
bhaiya please make more videos like this for different topics of data structures like trees, graphs etc. . LOve the way you teach thanks .
bhaiya ne bilkul jee wale tareke se pdaya hai , # mza aa gya :):):)
without making stack of pair of index and value we can make a simple stack storing only indices..
But it could be a bit confusing so you should use pair of stack only.
once I asked in my class group! how were you guys able to figure it out that this will be solved using stack ?
And not a single person was able to answer it.
but I know the answer now! Thanks!
😂
og explaination big brother 🤩,looking forward to some amazing content from your side in future ,and the trick that u did with ur pen looks cool.
Thankyou i was able to solve such questions finally!
Since we are dealing with indexes here. WE can just put indexes in the stack instead of the pair.
calculateSpan(price, n)
{
let stack = [0];
let output = new Array(n);
output[0] = 1;
for(let i = 1; i < n; i++){
while(stack.length > 0){
let topIndex = stack[stack.length - 1];
let top = price[topIndex];
if(top > price[i]){
stack.push(i);
output[i] = i - topIndex;
break;
} else{
stack.pop();
}
}
if(stack.length === 0){
output[i] = i + 1;
stack.push(i)
}
}
return output;
}
thank bhaiya... your videos are very well serving it purpose
we can make a single vector or array and directly push index of st.top() - I(index of element) instead of making two arrays and substracting them .
1 video dekhi bass nearest greater to right aage ke foundation waale khud se ban gye + stock span problem bhi khud se ban gaya
what a great content
bhai tumne ds padi kese thoda share kardo bohat achai knowlrdge hai.
sources and how to study..........best video ever seen
Sir, in Java there is no option for storing array element and its index together in stack, Kindly suggest any idea...
Just store the index in the stack, no need to store the pairs.
Here's the code in cpp:-
vector calculateSpan(int price[], int n)
{
vector v;
stack s;
for(int i=0;i
bhaiya please upload some more videos regarding backtraking ,graph ,tree .Your Teaching style is really great .
Can we do this just by storing the index in stack
yes ofc
vector calculateSpan(int price[], int n)
{
vector v;
stack s;
for(int i=0;i
Plz continue upload the video this is very helpful
vector calculateSpan(int price[], int n)
{
stacks;
vectorans;
for(int i=0; i0 and s.top().first price[i] ) ans.push_back( i - s.top().second);
s.push({price[i],i});
}
return ans;
}
Well had a question, what we are looking for is consecutive smaller elements and that could be equal to the number of times we pop the top element from the Stack so can't we just maintain a count variable and increment it each time we pop the the Stack and by pushing the count in vector we can have the answer
Amazing explanation brother @Aditya Verma ...Was looking for a playlist like this !!
You made it look easy to identify the type. Great !!
how easy this question is now. Thank you
Great explanation...brilliant. Thank you for explaining like this.
last for loop can be neglected if we calculate the NGE during the process,
<
l=[10, 4, 5, 90, 120, 80] # span
ls=[] # Stock
ans=[] # final answer vector
for i in range(0,len(l)):
if len(ls)==0:
ans.append(1) # as given in the question, if no span.
elif len(ls)>0 and ls[-1][0]>l[i]:
ans.append(i-ls[-1][1]) # index-position of NGE
elif len(ls)>0 and ls[-1][0]0 and ls[-1][0]
Thanks buddy .!