1. 程式人生 > >20.棧中最小元素的min函數

20.棧中最小元素的min函數

-c 數據 new sta min spa 元素 結構 integer

定義棧的數據結構,請在該類型中實現一個能夠得到棧中所含最小元素的min函數(時間復雜度應為O(1))

import java.util.Stack;

/*
 * 解題註意:原棧多大,min棧就多大
 * 23521
 * 22221
 * 題目意思是當前最小,你data棧pop掉1以後,當前min就改變了
 */
public class Solution20 {
    Stack<Integer> stackData = new Stack<Integer>();
    Stack<Integer> stackMin = new Stack<Integer>();

    
public void push(int node) { if (stackMin.size() == 0) { stackData.push(node); stackMin.push(node); } else { if (node < stackMin.peek()) { stackMin.push(node); stackData.push(node); } else { stackData.push(node); stackMin.push(stackMin.peek()); } } }
public void pop() { stackData.pop(); stackMin.pop(); } public int top() { return stackData.peek(); } public int min() { return stackMin.peek(); } }

20.棧中最小元素的min函數