zoukankan      html  css  js  c++  java
  • 自定义栈类型,具有找到站内最小元素的min函数 ,且min(),pop(),push()函数的时间复杂度为O(1)

    基本思想:

    // 借助一个辅助栈,入栈时,若新元素比辅助栈栈顶元素小,则直接放入辅助站
    // 反之,辅助站中放入次小元素(即辅助栈栈顶元素)====保证最小元素出栈时,次小元素被保存

    static class MyStack {
    		Integer[] value = new Integer[10];
    		int index = 0;
    		MyStack miniStack;// 辅助栈
    		void push(Integer vInteger) {
    			this.push(vInteger);
    			// 辅助栈中无元素或栈顶元素比新插入元素大
    			if (miniStack.size() == 0 || miniStack.peek() > vInteger) {
    				miniStack.push(vInteger);
    			} else {// 新插入元素较小
    				miniStack.push(miniStack.peek());
    			}
    		}
    		Integer peek() {
    			return miniStack.pop();
    		}
    		// 出栈时,主栈与辅助栈一同弹出元素
    		Integer pop() {
    			miniStack.pop();
    			return value[index];
    		}
    		Integer mini() {
    			return miniStack.pop();
    		}
    		Integer size() {
    			return index;
    		}
    	}
    

      

  • 相关阅读:
    JS之函数声明与表达式
    任重道远!
    Java_Notes01
    Android_Application Fundamentals
    Android_Activity
    Android
    Linux下的实模式和保护模式
    spring注解原理
    开启aix SFTP日志 是否和链接SFTP有关呢
    Apache版本兼容性问题
  • 原文地址:https://www.cnblogs.com/cugb-2013/p/3634528.html
Copyright © 2011-2022 走看看