• 20.包含min函数的栈 Java


     

    题目描述

    定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。

    思路

    借助辅助栈实现:
    	压栈时:若辅助栈为空,则将节点压入辅助栈。否则,当当前节点小于等于辅助栈栈顶元素时将节点压入辅助栈。
    	出栈时:若辅助栈和数据栈栈顶元素相同,则同时出栈。否则,只出栈数据栈元素。


    代码

    import java.util.Stack;
    
    public class Solution {
        private Stack stack = new Stack();
        private Stack minStack = new Stack();
        
        
        public void push(int node) {
        	//当辅助栈为空或者当前节点值小于等于辅助栈栈顶元素才压栈
            if(minStack.isEmpty() || node <= (Integer)minStack.peek()){
                minStack.push(node);
            }
            stack.push(node);
        }
        
        public void pop() {
            if(stack.peek()==minStack.peek()){
                minStack.pop();
            }
            stack.pop();
        }
        
        public int top() {
            return (Integer)stack.peek();
        }
        
        public int min() {
            return (Integer)minStack.peek();
        }
    }
  • 相关阅读:
    gdb php
    redis启动过程
    php protobuf 安装使用2
    php protobuf 安装使用
    服务治理
    base64编码
    redis-quicklist
    redis-ziplist
    redis-zset数据结构探索
    su root 出现 su: Authentication failure
  • 原文地址:https://www.cnblogs.com/feicheninfo/p/10569580.html
Copyright © 2020-2023  润新知