Advertisement

Java数据结构与算法(最小栈)

阅读量:

前言

构建一个能够执行 pushpoptop 操作,并且可以在常数时间范围内获取最小元素的栈结构。

实现 MinStack 类如下:

  • MinStack() 用于创建堆栈对象。
  • void push(int val) 将整数值 val 添加至堆栈顶部。
  • void pop() 用于移除堆栈顶部的元素。
  • int top() 返回当前堆栈顶部的元素值。
  • int getMin() 返回当前堆栈中所有元素中的最小值。

实现原理概述

  1. 构建两个栈结构,其中第一个栈用于存储当前新加入的元素,而第二个栈则用于记录对应入栈数据过程中的最小值。

  2. 在最小值栈的操作过程中,每当有新的数据入栈时,会将其与当前栈顶元素进行比较,随后将较小的那个数值重新压入栈顶,从而确保最小值栈的顶部始终保存着当前所有数据中的最小值。

具体 代码实现

复制代码
 class MinStack {

    
     Deque<Integer> xStack;
    
     Deque<Integer> minStack;
    
  
    
     public MinStack() {
    
     xStack=new LinkedList();
    
     m

全部评论 (0)

还没有任何评论哟~