做网站页面过大好,装修公司加盟条件,创业做网站开发,大一学生期末网页设计作业Python3实现最小栈原题 https://leetcode-cn.com/problems/min-stack/
设计一个支持 push#xff0c;pop#xff0c;top 操作#xff0c;并能在常数时间内检索到最小元素的栈。
push(x) – 将元素 x 推入栈中。 pop() – 删除栈顶的元素。 top() – 获取栈顶元素。 getMin…
Python3实现最小栈原题 https://leetcode-cn.com/problems/min-stack/
设计一个支持 pushpoptop 操作并能在常数时间内检索到最小元素的栈。
push(x) – 将元素 x 推入栈中。 pop() – 删除栈顶的元素。 top() – 获取栈顶元素。 getMin() – 检索栈中的最小元素。
示例:
MinStack minStack new MinStack();
minStack.push(-2);
minStack.push(0);
minStack.push(-3);
minStack.getMin(); -- 返回 -3.
minStack.pop();
minStack.top(); -- 返回 0.
minStack.getMin(); -- 返回 -2.解题
class MinStack:def __init__(self):initialize your data structure here.self.__length 0self.__minArr [] #思路很简单由于栈先进后出所以在元素入栈时把最小值也保存下来这样不需要每次获取都手动计算最小值了时间复杂度降至O(1)self.__arr []def push(self, x: int) - None:self.__arr.append(x)self.__minArr.append(x if self.__length 0 else min(x, self.__minArr[self.__length - 1]))self.__length 1def pop(self) - None:self.__arr.pop()self.__minArr.pop()self.__length - 1def top(self) - int:return self.__arr[self.__length - 1]def getMin(self) - int:return self.__minArr[self.__length - 1]# Your MinStack object will be instantiated and called as such:
# obj MinStack()
# obj.push(x)
# obj.pop()
# param_3 obj.top()
# param_4 obj.getMin()