【Leetcode刷题Python】剑指 Offer 30. 包含min函数的栈

简介: 本文提供了实现一个包含min函数的栈的Python代码,确保min、push和pop操作的时间复杂度为O(1)。

1 题目

定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。

示例:

MinStack minStack = new MinStack();
minStack.push(-2);
minStack.push(0);
minStack.push(-3);
minStack.min(); --> 返回 -3.
minStack.pop();
minStack.top(); --> 返回 0.
minStack.min(); --> 返回 -2.

提示:

各函数的调用总次数不超过 20000 次

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/bao-han-minhan-shu-de-zhan-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2 解析

在python中用一个列表就可以实现

3 Python实现

class MinStack:
    def __init__(self) -> None:
        self.stack = []
    def push(self,n):
        self.stack.append(n)
    def pop(self):
        self.stack.pop()
    def min(self):
        return min(self.stack)
    def top(self):
        return self.stack[-1]
目录
相关文章
|
16天前
|
开发者 Python 容器
python函数基础以及函数参数简解
python函数基础以及函数参数简解
|
9天前
|
Python
python 函数
【9月更文挑战第4天】python 函数
32 5
WK
|
16天前
|
Python
python中的函数有哪些种类?
在 Python 中,函数根据定义方式、用途及来源可分为多种类型:自带的内置函数(如 print(), len())无需导入直接使用;标准库函数需导入相应模块后使用;第三方库函数则需先安装库再导入使用;用户自定义函数可根据需求定义并多次调用;匿名函数(lambda)无函数名,常用于需要函数对象但不想单独定义的情形;高阶函数接受或返回函数;装饰器函数可在不改动原函数代码情况下为其添加新功能;生成器函数使用 yield 逐个返回值;递归函数在自身定义中调用自身;嵌套函数在一个函数内定义,可访问外部函数变量。各种函数类型在编程中有不同的用途和优势。
WK
38 12
|
15天前
|
Python
Python 中 help() 和 dir() 函数的用法
【8月更文挑战第29天】
17 5
|
16天前
|
Python
12类常用的Python函数
12类常用的Python函数
|
16天前
|
Python
python中getattr函数 hasattr函数
python中getattr函数 hasattr函数
|
16天前
|
算法 Python
python函数递归和生成器
python函数递归和生成器
|
15天前
|
Python
Python eval()函数的使用
Python eval()函数的使用
15 1
|
16天前
|
Python
python常用内置函数
python常用内置函数
|
17天前
|
算法 Python
python常见的函数使用
【8月更文挑战第27天】python常见的函数使用
14 2