LeetCode Min Stack

来源:互联网 发布:围棋软件排行 编辑:程序博客网 时间:2024/05/20 13:07

Min Stack

题意:给定一个类和几个描述好的操作,实现它。是一个能够输出最小值的类。

这道题目有点回到了ACM的感觉。明确以下几点:

1、stack是一个和时间相关的

2、某一个时刻的stack从top到i的最小值给划分的话,发现随着i从栈顶到栈底是依次递增的(有着单调性)

认识到这么一个单调性的话就很好做了

import java.util.Stack;class MinStack {    Stack<Integer> s = new Stack<Integer>();Stack<Integer> min = new Stack<Integer>();public void push(int x) {s.push(x);if (min.isEmpty() || min.peek() >= x)min.push(x);}public void pop() {if (s.peek().equals(min.peek()))min.pop();s.pop();}public int top() {return s.peek();}public int getMin() {return min.peek();}}


Min Stack

题意:给定一个类和几个描述好的操作,实现它。是一个能够输出最小值的类。

这道题目有点回到了ACM的感觉。明确以下几点:

1、stack是一个和时间相关的

2、某一个时刻的stack从top到i的最小值给划分的话,发现随着i从栈顶到栈底是依次递增的(有着单调性)

认识到这么一个单调性的话就很好做了

0 0