Java实现min函数_AcWing 41. 包含min函数的栈--Java代码
題目描述
blablabla
樣例
blablabla
算法1
(輔助棧,同時(shí)壓棧) $O(n)$
分三種方法
1、(基礎(chǔ))x入棧,然后輔助棧的棧頂和x比較,x小,將x壓入輔助棧,棧頂小,將棧頂壓入
2、(中級)x入棧,然后輔助棧的棧頂和x比較,x小,將x壓入輔助棧,棧頂小,不壓入,pop時(shí),x與棧頂比較,如果相同,同時(shí)彈棧,但如果一直是相同的最小值,會一直push輔助棧
3、(高級)x入棧,然后輔助棧的棧頂和x比較,x小,將x的索引壓入輔助棧,棧頂小,不壓入,pop時(shí),x與棧頂比較,如果索引相同,同時(shí)彈棧。
只放基礎(chǔ)代碼
Java 代碼
class MinStack {
/** initialize your data structure here. */
Stack stack;
Stack min;
public MinStack() {
stack = new Stack<>();
min = new Stack<>();
}
public void push(int x) {
stack.push(x);
if(min.empty()){
min.push(x);
}else{
Integer minNum = min.peek();
if(x<=minNum){
min.push(x);
}else{
min.push(minNum);
}
}
}
public void pop() {
stack.pop();
min.pop();
}
public int top() {
return stack.peek();
}
public int getMin() {
return min.peek();
}
}
總結(jié)
以上是生活随笔為你收集整理的Java实现min函数_AcWing 41. 包含min函数的栈--Java代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 对USB驱动程序的理解
- 下一篇: java美元兑换,(Java实现) 美元