TGViewer
Библиотека питониста | Python, Django, Flask Библиотека питониста | Python, Django, Flask @pyproglib · 37.3K subscribers
Post #7619 2.26K
🔥 Как правильно использовать heapq для поиска K-го наибольшего элемента

Если вы готовитесь к собеседованиям по Python — почти наверняка встретите задачу на Kth Largest. И здесь есть важный нюанс 👇

heapq в Python работает только как min heap


Попытка использовать heapify_max() на большинстве платформ приведёт к ошибке (полноценно появится только в Python 3.14+).

❌ Наивный способ (через отрицания)

Можно «сымитировать» max heap:

import heapq

nums = [3, 2, 1, 5, 6, 4]
max_heap = [-x for x in nums]
heapq.heapify(max_heap)

largest = -max_heap[0]


Подходит для небольших массивов, но плохо масштабируется.
Если данные большие (например, поток из миллиардов чисел) — это неэффективно по памяти.

✅ Как ожидают увидеть на собеседовании

Используйте min heap размера K

Идея:
— вы храните только K самых больших элементов
— минимальный среди них — это и есть ответ

🏆 Представьте это как «топ-10» список:

Решение:

import heapq

def find_kth_largest(nums: list[int], k: int) -> int:
heap = nums[:k]
heapq.heapify(heap)

for num in nums[k:]:
if num > heap[0]:
heapq.heapreplace(heap, num)

return heap[0]


Почему это важно
— Время: O(N log K)
— Память: O(K)
— Подходит для потоковых данных

📍 Навигация: Вакансии • Задачи • Собесы

Библиотека питониста

#буст
  • 👍 3
  • ❤ 1
More from @pyproglib
  1. Sep 25, 2026🔥 Курс «ИИ для разработчиков» уже стартовал И мы решили открыть первое занятие всем — мож…
  2. Sep 20, 2026👻 94% токенов уходят не на код Анализ запусков показал: основная часть токенов уходит на…
  3. Sep 19, 2026📚Напоминаем про наш полный курс «Самоучитель по Python для начинающих» Мы написали и собр…
  4. Sep 15, 2026😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как трати…
  5. Sep 15, 2026⏱️ Справочник по Big-O в Python Для тех, кто хочет писать не просто работающий, а эффектив…
  6. Sep 14, 2026🤪 Если бы можно было задать один вопрос про AI в разработке — что бы вы спросили? Как выб…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →