43 lines
1000 B
Python
43 lines
1000 B
Python
class MinStack:
|
|
def __init__(self):
|
|
self.sta = []
|
|
self.minn = 2 ** 31
|
|
self.tops = -1
|
|
self.sorted = []
|
|
|
|
def push(self, val: int) -> None:
|
|
self.tops += 1
|
|
if len(self.sta) <= self.tops:
|
|
self.sta.append(val)
|
|
else:
|
|
self.sta[self.tops] = val
|
|
flag = False
|
|
for ind, num in enumerate(self.sorted):
|
|
if val < num:
|
|
self.sorted.insert(ind,val)
|
|
flag = True
|
|
break
|
|
if flag == False:
|
|
self.sorted.append(val)
|
|
self.minn = min(self.minn, val)
|
|
|
|
def pop(self) -> None:
|
|
val = self.sta[self.tops]
|
|
self.sorted.remove(val)
|
|
self.tops -= 1
|
|
|
|
def top(self) -> int:
|
|
return self.sta[self.tops]
|
|
|
|
def getMin(self) -> int:
|
|
return self.sorted[0]
|
|
|
|
|
|
mins = MinStack()
|
|
mins.push(-2)
|
|
mins.push(0)
|
|
mins.push(-3)
|
|
print(mins.getMin())
|
|
print(mins.pop())
|
|
print(mins.top())
|
|
print(mins.getMin()) |