Java数据结构与算法(最小栈)
发布时间
阅读量:
阅读量
前言
构建一个能够执行 push 、pop 、top 操作,并且可以在常数时间范围内获取最小元素的栈结构。
实现 MinStack 类如下:
MinStack()用于创建堆栈对象。void push(int val)将整数值 val 添加至堆栈顶部。void pop()用于移除堆栈顶部的元素。int top()返回当前堆栈顶部的元素值。int getMin()返回当前堆栈中所有元素中的最小值。
实现原理概述
-
构建两个栈结构,其中第一个栈用于存储当前新加入的元素,而第二个栈则用于记录对应入栈数据过程中的最小值。
-
在最小值栈的操作过程中,每当有新的数据入栈时,会将其与当前栈顶元素进行比较,随后将较小的那个数值重新压入栈顶,从而确保最小值栈的顶部始终保存着当前所有数据中的最小值。
具体 代码实现
class MinStack {
Deque<Integer> xStack;
Deque<Integer> minStack;
public MinStack() {
xStack=new LinkedList();
m
全部评论 (0)
还没有任何评论哟~
