class StockSpanner:
def __init__(self):
self.st=[]
self.i=0
def next(self, price: int) -> int:
if len(self.st)==0:
self.st.append([price,self.i])
self.i+=1
return 1
while len(self.st) and self.st[-1][0]<=price:
self.st.pop()
# print(self.i,self.st)
if len(self.st)==0:ans=self.i+1
else:
ans=self.i-self.st[-1][-1]
self.st.append([price,self.i])
self.i+=1
return ans
# Your StockSpanner object will be instantiated and called as such:
# obj = StockSpanner()
# param_1 = obj.next(price)
单调stack