<LeetCode天梯>Day042 最小栈 | 初级算法 | Python

以下为我的天梯积分规则:


每日至少一题:一题积分+10分

若多做了一题(或多一种方法解答),则当日积分+20分(+10+10)

若做了三道以上,则从第三题开始算+20分(如:做了三道题则积分-10+10+20=40;做了四道题则积分–10+10+20+20=60)


初始分为100分

若差一天没做题,则扣积分-10分(周六、周日除外注:休息)

坚持!!!


初级算法

刷题目录

设计问题

<LeetCode天梯>Day042 最小栈 | 初级算法 | Python

题干

设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。


push(x) —— 将元素 x 推入栈中。

pop() —— 删除栈顶的元素。

top() —— 获取栈顶元素。

getMin() —— 检索栈中的最小元素。

示例:


输入:

[“MinStack”,“push”,“push”,“push”,“getMin”,“pop”,“top”,“getMin”]

[[],[-2],[0],[-3],[],[],[],[]]


输出: [null,null,null,null,-3,null,0,-2]


解释: MinStack minStack = new MinStack(); minStack.push(-2);

minStack.push(0); minStack.push(-3); minStack.getMin(); --> 返回 -3.

minStack.pop(); minStack.top(); --> 返回 0. minStack.getMin();

–> 返回 -2.


栈操作

这道题让我们自定义一个栈,有push,pop,top,min四个函数。这题和官方的Stack相比就多了一个min函数。我们用python实现,有内置函数,其实还是很香很方便的,哈哈哈

class MinStack:
    def __init__(self):
        self.stack = list()

    def push(self, val: int) -> None:
        self.stack.append(val)

    def pop(self) -> None:
        self.stack.pop()

    def top(self) -> int:
        return self.stack[-1]

    def getMin(self) -> int:
        return min(self.stack)

<LeetCode天梯>Day042 最小栈 | 初级算法 | Python


上一篇:<LeetCode天梯>Day044 3的幂(常规解法+递归法+算术表达式+最后一种) | 初级算法 | Python


下一篇:<LeetCode天梯>Day043 Fizz Buzz(按部就班) | 初级算法 | Python