632. Menor alcance de abordagem de elementos de K listas
dificuldade: hard
tópicos: Array, tabela de hash, janela gananciosa, deslizante, classificação, heap (fila de prioridade)
Você tem l listas de números inteiros classificados em Ordem não decrescente . Encontre o intervalo menor que inclui pelo menos um número de cada uma das l listas.
definimos o intervalo [a, b] é menor que o intervalo [c, d] se b - a Exemplo 1: Exemplo 2: restrições: (ou fila de prioridade) para rastrear o menor elemento de cada lista, mantendo uma janela deslizante para encontrar o menor intervalo que inclui pelo menos um elemento de cada lista.
Abordagem
inicialização Min-Heap
Explicação:
Se você achou essa série útil, considere dar o uma estrela no github ou compartilhar a postagem em suas redes sociais favoritas?. Seu apoio significaria muito para mim!
Se você quiser um conteúdo mais útil como este, fique à vontade para me seguir:
Linkedin
min-heap
Valor máximo Rastreamento
Php
/**
* @param inteiro [] [] $ nums
* @return integer []
*/
função smallestrange ($ nums) {
...
...
...
/**
* vá para ./solution.php
*/
}
// Exemplo de uso:
$ nums = [[4, 10, 15, 24, 26], [0, 9, 12, 20], [5, 18, 22, 30]];
$ resultado = smallestrange ($ nums);
print_r ($ resultado); // Saída: [20, 24]
?>
:
O heap inicial contém o primeiro elemento de cada lista. Também acompanhamos o elemento máximo entre os primeiros elementos.
: o (n * log k), onde n é o número total de elementos em todas as listas e k é o número de listas. A complexidade vem da inserção e remoção de elementos do heap. Processando o HEAP
extrai o elemento mínimo da pilha e, em seguida, tente estender o intervalo adicionando o próximo elemento da mesma lista (se disponível).
O loop para quando qualquer lista fica sem elementos, pois não podemos mais incluir todas as listas no intervalo.
Análise de complexidade
complexidade do espaço
github
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3