Oferta poco para probar la seguridad de JavaScript para obtener el elemento más pequeño contenida en el día pila

Pila estructura de datos definición, implementar este tipo puede ser una función min elementos más pequeños contenidos en la pila
(debe (1) el tiempo de complejidad O)
primero analizar la pila, se puede lograr?

Aquí Insertar imagen Descripción
Pila es el último en salir, pero si hay una pila secundaria grabar todo el elemento más pequeño pila, se puede lograr.

var stack = [];
var minStack = [];//辅助栈
length = 0;
//push
//插入元素
//在堆栈顶部插入一个新元素,该元素位于当前顶部元素之上。
//pop
//删除上面的元素。出栈

/* 维护两个栈stack,stackmin,分别记录输入的所有值 和 最小值
每输入一个值,正常入stack栈,但是如果比栈stackmin的栈顶元素小的话,则入stackmin栈,否则stackmin中的栈顶元素重复入栈一次,
这样做是为了保证每次取最小值都能取到stack中所含元素的最小值 */
function push(node)//插入元素
{
    // write code here
    if(length === 0){
        minStack.push(node);
    }else if(node > minStack[minStack.length-1]){
        stack.push(node);
    }else{
        minStack.push(node);
        stack.push(node);
    }
    length++;
}
function pop()//删除元素
{
    // write code here
    if(length === 0){
        return null;
    }else if(stack[stack.length-1] === minStack[minStack.length-1]){
        minStack.pop();
        return stack.pop();
    }else{
        return stack.pop();
    }
    length--;
}
function top()
{
    // write code here
    return stack[0];
}
function min()
{
    // write code here
    return minStack[minStack.length-1];
}
Publicados 158 artículos originales · ganado elogios 44 · Vistas a 30000 +

Supongo que te gusta

Origin blog.csdn.net/qq_43277404/article/details/104635666
Recomendado
Clasificación