Encuentre el número de días que la temperatura diaria es mayor que este día

1. La idea convencional es usar dos punteros, uno para señalar el elemento a juzgar y el otro para encontrar un índice de elemento mayor que este elemento

2, pero el grado de replicación temporal de este algoritmo es O (n ^ 2)

3. Podemos usar la pila para resolver tales problemas

4. Elemento de conveniencia, cuando el elemento es más pequeño que el elemento superior de la pila, el elemento se empuja hacia la pila;

5. Cuando el elemento es mayor que el elemento superior de la pila, se calcula la distancia entre el elemento superior y el elemento actual

6, el grado de replicación del tiempo es O (n)

 

import java.util. * ; 

public  class Client {
     public  static  void main (String [] args) {
                        //   0 1 2 3 4 5 6 7 
        int [] templates = {23,24,25,21,19,22,26,23 };
        int [] wendu = wendu (plantillas); 
        System.out.println (Arrays.toString (wendu)); 
    } 

    static  int [] wendu ( int [] templates) {
         int [] result = new  int [templates.length]; 
        Stack <Integer> stack = new Stack <> ();// Guarde el subíndice de la matriz 
        para ( int i = 0; i <templates.length; i ++ ) {
             if (stack.isEmpty ()) { 
                stack.push (i); 
            } else { 
                Integer peek = stack.peek ();
                 if (templates [i] <= templates [peek]) { 
                    stack.push (i); 
                } else { // más grande que el elemento superior de la pila 
                    while (! stack.isEmpty ()) { 
                        Integer index = stack.pop ();
                         if (plantillas [i]>plantillas [índice]) { 
                            resultado [índice] = i - índice; 
                        } else { 
                            stack.push (index); 
                            romper ; 
                        } 
                    } 
                    stack.push (i); 
                } 
            } 

        } 

        devolver resultado; 
    } 

}

 

Supongo que te gusta

Origin www.cnblogs.com/dongma/p/12734898.html
Recomendado
Clasificación