Aplicativo de pilha e fila LeetCode - 739. Temperatura diária

 Quais problemas clássicos as pilhas e filas podem resolver? Todas as perguntas podem ser encontradas na minha página inicial, bem-vindo a todos para prestar atenção ~~

(1) Problema de correspondência de colchetes (pilha)

(2) Problema de desduplicação de string (pilha)

  (3) Problema de expressão polonesa reversa (pilha)

  (4) O próximo elemento maior (pilha monotônica)

(5) Receber água da chuva (pilha monótona)

(6) Problema máximo da janela deslizante (fila monotônica) 

(7) Top K elementos com mais ocorrências (fila de prioridade)

(8) Fila de implementação de pilha

(9) Pilha de implementação de fila 

1. Solução 

739. Temperatura diária

Dada uma matriz de números inteiros  temperatures representando as temperaturas de cada dia, retorne uma matriz  answer em que,  answer[i] para o  i dia, ocorra a próxima temperatura mais alta em dias. Se a temperatura não subir depois disso, use-o 0 nesse .

 

class Solution {
    public int[] dailyTemperatures(int[] temperatures) {
        Deque<Integer> deque=new LinkedList<Integer>();
        int[] res=new int[temperatures.length];
        for(int i=0;i<temperatures.length;i++){
            int num=temperatures[i];
            while(!deque.isEmpty()&&num>temperatures[deque.peek()]){
                int index=deque.pop();
                res[index]=i-index;
            }
            deque.push(i);
        }
        return res;
    }
}

2. Conhecimento básico da pilha

A característica mais notável da pilha é: primeiro a entrar, último a sair

1. Classes de implementação comuns de pilhas em Java:

A implementação mais básica: Stack<Integer> stack=new Stack<>();

Implementação de fila dupla: Deque<Integer> stack=new LinkedList<>();

2. Métodos comuns de pilha

push(x) -- empurra um elemento para o final da fila.
pop() -- remove um elemento do início da fila.
peek() -- retorna o elemento no início da fila.
empty() -- retorna se a fila está vazia.

3. Conhecimento básico de filas

A característica mais notável da fila é: primeiro a entrar primeiro a sair

1. Classes comuns de implementação de filas em Java:

Fila comum: Queue<Integer> queue=new LinkedList<>();

Fila dupla: Deque<Integer> queue=new LinkedList<>();

Fila de prioridade: PriorityQueue<Integer> fila=new PriorityQueue<>();

2. Métodos comuns de filas

add Adiciona um elemento Se a fila estiver cheia, lança uma exceção IIIegaISlabEepeplian
remove Remove e retorna o elemento no início da fila Se a fila estiver vazia, lança um
elemento NoSuchElementException Retorna o elemento no início da fila Se a fila estiver vazia , em seguida, lança um NoSuchElementException

size O número de elementos
oferecidos Adicionar um elemento e retornar true Se a fila estiver cheia, retornar false
poll Remover e retornar o elemento no início da fila Se a fila estiver vazia, retornar null
peek Retornar o elemento no início da fila Se a fila estiver vazia, retorne null


put adiciona um elemento, bloqueia se a fila estiver cheia
take remove e retorna o elemento no início da fila, bloqueia se a fila estiver vazia

Acho que você gosta

Origin blog.csdn.net/w20001118/article/details/127343612
Recomendado
Clasificación