Min Stack
2015-07-07 10:57
344 查看
1 题目描述
Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.push(x) -- Push element x onto stack.
pop() -- Removes the element on top of the stack.
top() -- Get the top element.
getMin() -- Retrieve the minimum element in the stack.
题目出处:https://leetcode.com/problems/min-stack/
2 源代码
package com.larry.easy; import java.util.Stack; public class MinStack { private Stack<Integer> stack = new Stack<Integer>(); //因为时间复杂度要求是常数,则考虑加入一个栈来存储,最上面的元素为最小的元素 //这个题的关键是在minSta栈中的push()与pop()方法:入栈时判断,最小则压栈;出栈时判断,相等则出栈。 private Stack<Integer> minSta = new Stack<Integer>(); public void push(int x) { stack.push(x); if(minSta.empty() || x <= minSta.peek()) minSta.push(x); } public void pop() { int temp = stack.pop(); if(temp == minSta.peek()) minSta.pop(); } public int top() { return stack.peek(); } public int getMin() { return minSta.peek(); } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统