力扣简155 最小栈

手写栈

 

//自己本来想对栈只加一个int型的,记录他的最小值,而且还不会写栈,绝了!所以建了一个Java笔记,慢慢补充吧。
//看了题解知道不合理。当最小值弹出后求最小值又是谁?还得重新遍历。
//只看了题解的初始化!

 

 

package leetcode01;

import java.util.Deque;
import java.util.LinkedList;
import java.util.Stack;

/**
 * Your MinStack object will be instantiated and called as such:
 * MinStack obj = new MinStack();
 * obj.push(val);
 * obj.pop();
 * int param_3 = obj.top();
 * int param_4 = obj.getMin();
 */
//设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。
//实现 MinStack 类:
//
//MinStack() 初始化堆栈对象。
//void push(int val) 将元素val推入堆栈。
//void pop() 删除堆栈顶部的元素。
//int top() 获取堆栈顶部的元素。
//int getMin() 获取堆栈中的最小元素。

//自己本来想对栈只加一个int型的,记录他的最小值,而且还不会写栈,绝了!
//看了题解知道不合理。当最小值弹出后求最小值又是谁?还得重新遍历。
//只看了题解的初始化!

class MinStack{
    Deque<Integer> MinStack;
    Deque<Integer> StackAssist;
    
    public MinStack() {
        MinStack = new LinkedList<Integer>();
        StackAssist = new LinkedList<Integer>();
        StackAssist.add(Integer.MAX_VALUE);
    }
    
    public void push(int val) {
        MinStack.push(val);
        if(val<StackAssist.getFirst()) {
            StackAssist.push(val);
        }
        else {
            StackAssist.push(StackAssist.getFirst());
        }
    }
    
    public void pop() {
        MinStack.pop();
        StackAssist.pop();
    }
    
    public int top() {
        return MinStack.getFirst(); //等于peekFirst 等于peek
    }
    
    public int getMin() {
        return StackAssist.getFirst();
    }
}
    

public class Solution155 {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        MinStack sta=new MinStack();
        sta.push(3);
        System.out.println(sta.top());
        System.out.println(sta.getMin());
        sta.push(4);
        System.out.println(sta.top());
        System.out.println(sta.getMin());
        sta.push(2);
        System.out.println(sta.top());
        System.out.println(sta.getMin());
        sta.pop();
        System.out.println(sta.top());
        System.out.println(sta.getMin());
    }


}

 

posted @ 2022-05-28 16:02  Ssshiny  阅读(20)  评论(0)    收藏  举报