Stock Span Problem

Problem Link: https://practice.geeksforgeeks.org/problems/stock-span-problem-1587115621/1

class Solution:
    
    #Function to calculate the span of stock’s price for all n days.
    def calculateSpan(self,nums,n):
        #code here
        
        s=[]
        ans=[]
        for i in range(n):
            if(len(s)==0):
                ans.append(i-(-1))
            else:
                if(nums[s[-1]]>nums[i]):
                    ans.append(i-s[-1])
                else:
                    while(len(s)>0 and nums[s[-1]]<=nums[i]):
                        s.pop()
                    if(len(s)==0):
                        ans.append(i-(-1))
                    else:
                        ans.append(i-s[-1])
            s.append(i)
        
        return ans

Last updated