Obtenir Min/Max en O(1) le temps d'une File d'attente?

Comment puis-je récupérer le max et le min élément d'une file d'attente à tout moment en 0(1) le temps de la complexité?
Plus tôt, j'ai été à l'aide de Collections.max et min pour trouver les éléments, mais que serait 0(n).

À moins que la file d'attente est triée, vous ne pouvez pas...
Utilisation Treeset au lieu de la file d'attente.
Vous pouvez créer des champs spéciaux qui va stocker max/min quelle que soit vous mettez à jour votre file d'attente et le lire en cas de besoin.
oui, mais la mise à jour nécessiterait non-constante de temps.
Recherche pour min pile O(1). Ensuite, la recherche de mettre en œuvre la file d'attente à l'aide de 2 piles. Combiner et vous aurez min de File d'attente O(1), O(1) moyenne de la pop.

OriginalL'auteur h4ck3d | 2012-08-21