Loading section...
heapq Module Fundamentals
Concepts: pyHeapqModule, pyMinHeap, pyMaxHeapSimulation
Every heap interview problem in Python starts with one fact: heapq only gives you a min-heap. The root is always the smallest element. When you heappop(), you get the smallest. When you heappush(), the heap rebalances to maintain that invariant in O(log n). This is not a bug; it is by design. The reason Python only provides a min-heap is that a max-heap is trivially simulated by negating values, and providing both would add library surface area for no real gain. The interviewer knows this, and they will sometimes ask you to explicitly explain it. nlargest vs sorted: When to Use Each heapq.nlargest(k, data) is O(n log k). sorted(data, reverse=True)[:k] is O(n log n). When k is much smaller than n, nlargest wins by a large margin. When k approaches n, nlargest degrades and sorted is simpler.