155 stack
This commit is contained in:
		
							
								
								
									
										43
									
								
								155-240605/main.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								155-240605/main.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,43 @@ | ||||
| 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()) | ||||
		Reference in New Issue
	
	Block a user