我是靠谱客的博主 健忘黑夜,最近开发中收集的这篇文章主要介绍LeetCode之最小栈,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目:
设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。

  • push(x) —— 将元素 x 推入栈中。
  • pop() —— 删除栈顶的元素。
  • top() —— 获取栈顶元素。
  • getMin() —— 检索栈中的最小元素
    示例:
    在这里插入图片描述
    方法:辅助栈
class MinStack {

    //Deque:支持两端插入和移除的线性集合
	Deque<Integer> xStack;
	Deque<Integer> minStack;
	
    /** initialize your data structure here. */
    public MinStack() {
    	this.minStack=new LinkedList<Integer>();
    	this.xStack=new LinkedList<Integer>();
    	minStack.push(Integer.MAX_VALUE);
    }
    
    public void push(int x) {
    	xStack.push(x);
    	minStack.push(Math.min(minStack.peek(),x));   	
    }
    
    public void pop() {
    	xStack.pop();
    	minStack.pop();
    }
    
    public int top() {
    	return xStack.peek();
    }
    
    public int getMin() {
    	return minStack.peek();
    }

}

/**
 * Your MinStack object will be instantiated and called as such:
 * MinStack obj = new MinStack();
 * obj.push(x);
 * obj.pop();
 * int param_3 = obj.top();
 * int param_4 = obj.getMin();
 */

最后

以上就是健忘黑夜为你收集整理的LeetCode之最小栈的全部内容,希望文章能够帮你解决LeetCode之最小栈所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部