[LeetCode]901. Online Stock Span (Medium) Python-2022.11.09
Posted on 2022-11-09 22:56 Uriel 閱讀(48) 評論(0) 編輯 收藏 引用 所屬分類: 數據結構 、閑來無事重切Leet Code輸入一列股票價格,對于每個輸入price,計算從當前日期往前算,一共有多少天的價格是小于等于當前日的
棧操作,每次有新一日的股票價格輸入,就不斷與棧頂元素比較,不斷pop掉小于等于當日價格的棧頂元素,同時記錄每一個價格對應的日期
棧操作,每次有新一日的股票價格輸入,就不斷與棧頂元素比較,不斷pop掉小于等于當日價格的棧頂元素,同時記錄每一個價格對應的日期
1 #901
2 #Runtime: 886 ms
3 #Memory Usage: 18.8 MB
4
5 class StockSpanner(object):
6
7 def __init__(self):
8 self.stack_data = [[10001, 0]]
9
10 def next(self, price):
11 """
12 :type price: int
13 :rtype: int
14 """
15 day = self.stack_data[-1][1] + 1
16 while price >= self.stack_data[-1][0]:
17 self.stack_data.pop(-1)
18 ans = day - self.stack_data[-1][1]
19 self.stack_data.append([price, day])
20 return ans
2 #Runtime: 886 ms
3 #Memory Usage: 18.8 MB
4
5 class StockSpanner(object):
6
7 def __init__(self):
8 self.stack_data = [[10001, 0]]
9
10 def next(self, price):
11 """
12 :type price: int
13 :rtype: int
14 """
15 day = self.stack_data[-1][1] + 1
16 while price >= self.stack_data[-1][0]:
17 self.stack_data.pop(-1)
18 ans = day - self.stack_data[-1][1]
19 self.stack_data.append([price, day])
20 return ans