Aplicativo de pilha e fila LeetCode - 232. Implementando filas com pilhas

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) Problema máximo da janela deslizante (fila monotônica) 

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

(6) Fila de implementação de pilha

(7) Pilha de implementação de fila 

1. Solução 

class MyQueue {
        Stack<Integer> stack1;
        Stack<Integer> stack2;
    public MyQueue() {
        stack1=new Stack<>();
        stack2=new Stack<>();
    }
    
    public void push(int x) {
        stack1.push(x);
    }
    
    public int pop() {
        if(!stack2.isEmpty()){
            return stack2.pop();
        }
        while(!stack1.isEmpty()){
            stack2.push(stack1.pop());
        }
        return stack2.pop();
    }
    
    public int peek() {
        if(!stack2.isEmpty()){
            return stack2.peek();
          }
        while(!stack1.isEmpty()){
            stack2.push(stack1.pop());
        }
        return stack2.peek();
    }
    
    public boolean empty() {
        return stack1.isEmpty()&&stack2.isEmpty();
    }
}

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/127140336
Recomendado
Clasificación