当前位置: 首页 > news >正文

LeetCode第155题 - 最小栈

题目

设计一个支持 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.

解答

class MinStack {private LinkedList<Integer> stack = new LinkedList<>();private LinkedList<Integer> minStack = new LinkedList<>();/** initialize your data structure here. */public MinStack() {}public void push(int x) {if (stack.isEmpty()) {minStack.addFirst(x);}else {minStack.addFirst(Math.min(minStack.getFirst(), x));}stack.addFirst(x);}public void pop() {stack.removeFirst();minStack.removeFirst();}public int top() {return stack.getFirst();}public int getMin() {return minStack.getFirst();}
}

要点

常数级操作,意味着各个方法均不能对容器进行遍历,唯一想到的好办法即是把最小值保存下来,便于访问。

http://www.lryc.cn/news/280810.html

相关文章:

  • Java微服务系列之 ShardingSphere - ShardingSphere-JDBC
  • Unity中URP下实现能量罩(外发光)
  • Golang 中哪些类型可以作为 map 类型的 key?
  • C# 导出EXCEL 和 导入
  • 学网络必懂的华为CSS堆叠技术
  • SV-7041T 30W网络有源音箱校园教室广播音箱,商场广播音箱,会议广播音箱,酒店广播音箱,工厂办公室广播音箱
  • Could NOT find Threads (missing: Threads_FOUND)
  • 1114: 逆序(数组)
  • uniapp如何调用ANDROID原生函数
  • python 字符串的详细处理方法
  • 蓝桥杯AcWing学习笔记 8-2数论的学习(下)
  • vcs makefile
  • 《Training language models to follow instructions》论文解读--训练语言模型遵循人类反馈的指令
  • Redis的实现二: c、c++的网络通信编程技术,让服务器处理多个client
  • QT上位机开发(动画效果)
  • 手写实现 bind 函数
  • 安卓Android Studio读写MifareOne M1 IC卡源码
  • 一二三应用开发平台文件处理设计与实现系列之5——MinIO技术预研
  • Native.js是什么
  • Vant-ui图片懒加载
  • 创建EasyCodeMybatisCodeHelperPro模板文件用于将数据库表生成前端json文件
  • 华为端口安全常用3种方法配置案例
  • RH850P1X芯片学习笔记-Flash Memory
  • 利用XSS漏洞打cookie
  • 用java写个redis工具类
  • 实现防抖函数
  • MetaGPT task1学习
  • 关于量子计算机的设想
  • 序列模型(4)—— Scaling Laws
  • 【软件测试学习笔记1】测试基础