算法--最小栈

题目

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

实现 MinStack 类:

MinStack() 初始化堆栈对象。

void push(int val) 将元素val推入堆栈。

void pop() 删除堆栈顶部的元素。

int top() 获取堆栈顶部的元素。

int getMin() 获取堆栈中的最小元素。

示例 1:

输入:

"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.

提示:

-231 <= val <= 231 - 1

pop、top 和 getMin 操作总是在 非空栈 上调用

push, pop, top, and getMin最多被调用 3 * 104 次

来源:力扣(LeetCode)

链接:https://leetcode.cn/problems/min-stack

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解决方法

用额外的栈同步记录当前的最小值

kotlin 复制代码
    //一定要知道 栈是单向进出的 所以才可以保证每一步操作都是最小的
    //
    class MinStack() {
        val stack = LinkedList<Int>()
        val miniStack = LinkedList<Int>()

        fun push(`val`: Int) {
            stack.push(`val`)
            if (!miniStack.isEmpty()) {
                miniStack.push(miniStack.peek().coerceAtMost(`val`))
            }else{
                miniStack.push(`val`)
            }
        }

        fun pop() {
            stack.pop()
            miniStack.pop()
        }

        fun top(): Int {
           return stack.peek()
        }

        fun getMin(): Int {
            return miniStack.peek()
        }

    }

总结

好久没有周末来加班了,其实也没有那么累吧。闲着也没事。

提拔亲信确实是领导的必然选择啊 随缘吧

相关推荐
枫叶丹44 分钟前
【Qt开发】多元素类控件(二)-> QTableWidget
开发语言·qt
bin91535 分钟前
当AI开始‘映射‘用户数据:初级Python开发者的创意‘高阶函数‘如何避免被‘化简‘?—— 老码农的函数式幽默
开发语言·人工智能·python·工具·ai工具
哲学七11 分钟前
Springboot3.5.x版本引入javaCv相关库版本问题以及精简引入包
java·ffmpeg
leke200319 分钟前
2025年10月17日
算法
CoovallyAIHub21 分钟前
Mamba-3震撼登场!Transformer最强挑战者再进化,已进入ICLR 2026盲审
深度学习·算法·计算机视觉
Aqua Cheng.26 分钟前
代码随想录第七天|哈希表part02--454.四数相加II、383. 赎金信、15. 三数之和、18. 四数之和
java·数据结构·算法·散列表
怀揣小梦想26 分钟前
跟着Carl学算法--哈希表
数据结构·c++·笔记·算法·哈希算法·散列表
Nebula_g27 分钟前
Java哈希表入门详解(Hash)
java·开发语言·学习·算法·哈希算法·初学者
Kent_J_Truman27 分钟前
【模拟散列表】
数据结构·算法·蓝桥杯·散列表·常识类