검 지 offer 의 실현

  :        ,                       min  (       O(1))。

사고방식:두 개의 창 고 를 사용 하고,한 창 고 는 정상 적 인 데 이 터 를 저장 하 며,한 창 고 는 이 데 이 터 를 기록 할 때 까지 창고 의 데이터 의 최소 값 을 사용 합 니 다.
import java.util.Stack;

public class StackMin {
    Stack stack = new Stack();
    Stack stackmin = new Stack();


    public void push(int node) {
        stack.push(node);
        if (this.stackmin.size() > 0){
            stackmin.push(Math.min((int)stackmin.peek(),node));
        } else {
            stackmin.push(node);
        }
    }

    public void pop() {
        if (this.stack.size() > 0){
            int data = (int)this.stack.pop();
            int stackmin_pop = (int)this.stackmin.pop();
        }
    }

    public int top() {
        if (this.stack.size() > 0){
            return (int)this.stack.peek();
        }
        return 0;
    }

    public int min() {
        if (this.stack.size() > 0){
            return (int)this.stackmin.peek();
        }

        return 0;
    }

    public static void main(String[] args) {
        StackMin s = new StackMin();
        s.push(19);
        s.push(21);
        s.push(5);
        s.push(-1);

        System.out.println(s.min());
        System.out.println(s.top());
        s.pop();
        System.out.println(s.min());
    }
}

좋은 웹페이지 즐겨찾기