python3__leecode/面试题 03.02. 栈的最小值

本文介绍了LeetCode中的一道题目——最小值栈。题目要求设计一个栈,除了支持常规的push和pop操作外,还需要支持获取栈内最小元素的min操作,且所有操作的时间复杂度均为O(1)。解决方案是维护一个额外的栈来存储每次push时的最小值,从而在常数时间内获取最小值。

一、刷题内容

原题链接

https://leetcode-cn.com/problems/min-stack-lcci/

内容描述

请设计一个栈,除了常规栈支持的pop与push函数以外,还支持min函数,该函数返回栈元素中的最小值。执行push、pop和min操作的时间复杂度必须为O(1)。

示例:

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

二、解题方法

1.方法一

class MinStack:
    def __init__(self):
        self.stack = []
        self.min_stack = [math.inf]

    def push(self, x: int) -> None:
        self.stack.append(x)
        self.min_stack.append(min(x, self.min_stack[-1]))

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

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

    def getMin(self) -> int:
        return self.min_stack[-1]
CMake Error at CMakeLists.txt:47 (find_package): By not providing "FindAntithftActvnSrv_proxy.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "AntithftActvnSrv_proxy", but CMake did not find one. Could not find a package configuration file provided by "AntithftActvnSrv_proxy" with any of the following names: AntithftActvnSrv_proxyConfig.cmake antithftactvnsrv_proxy-config.cmake Add the installation prefix of "AntithftActvnSrv_proxy" to CMAKE_PREFIX_PATH or set "AntithftActvnSrv_proxy_DIR" to a directory containing one of the above files. If "AntithftActvnSrv_proxy" provides a separate development package or SDK, be sure it has been installed. --- Failed <<< CCSMTailgateCtrlApp_business [4.41s, exited with code 1] ]0;colcon build [5/6 done] [0 ongoing]Summary: 4 packages finished [1min 9s] 1 package failed: CCSMTailgateCtrlApp_business 5 packages had stderr output: CCSMTailgateCtrlApp_business HWConversionBodyReqService_proxy TrOpenCtrlSrv_proxy VehMtnStsService_proxy VehicleModeManagementService_proxy 1 package not processed command error: /home/zkos_docker/sdk/cmd_tools/3.0.03.02.0000/zkos_app_builder.sh -i /home/zkos_docker/D/app_all/2_LockingGlobalApp/locking/LockingGlobalApp -o /home/zkos_docker/D/app_all/2_LockingGlobalApp/locking/LockingGlobalApp --retry_file /tmp/zkos_boot_cnt_13701741675355 --worker_num 12 --platform platform-x64-linux --prebuilt /home/zkos_docker/sdk/sdk/3.0.03.02.0000/platform-x64-linux-debug --prebuilt-ver 3.0.03.02.0000 --sdk-root-path D:/ZKOS_3.0_PLAT_CN_SDK_ALL_IN_ONE_03.02.0000_20250307-020013_R0137
03-12
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百里 Jess

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值