---
id: TASK-34
title: 'Разбор задачи: Top K Frequent Words (Extra)'
status: Done
assignee:
  - '@assistant'
created_date: '2026-09-10 07:51'
updated_date: '2026-09-10 10:42'
labels: []
dependencies: []
references:
  - applications/yandex-codenv/algo-solutions/_template.md
priority: low
type: task
ordinal: 34000
---

## Description

<!-- SECTION:DESCRIPTION:BEGIN -->
Файл: algo-solutions/extra/05-top-k-frequent-words.md. Medium, tally + sort/min-heap.
<!-- SECTION:DESCRIPTION:END -->

## Acceptance Criteria
<!-- AC:BEGIN -->
- [x] #1 Файл создан со всеми секциями формата
<!-- AC:END -->

## Implementation Plan

<!-- SECTION:PLAN:BEGIN -->
1. Изучить шаблон _template.md и стиль готовых разборов (extra/04-remove-invalid-parentheses.md, extra/03-number-of-islands.md). 2. Создать applications/yandex-codenv/algo-solutions/extra/05-top-k-frequent-words.md по шаблону: YAML-фронтматер + все секции. LeetCode #692, Medium, категория Hash Table / Heap (Sorting). 3. Основное решение: tally (подсчёт частот) + сортировка по [-count, word]; альтернатива — min-heap размера k (Top-K). 4. Проверить Ruby-код на примерах локально (ruby). 5. Отметить AC, финальный комментарий, статус Done, коммит.
<!-- SECTION:PLAN:END -->

## Implementation Notes

<!-- SECTION:NOTES:BEGIN -->
Разбор и решение Top K Frequent Words (LeetCode #692, Medium, категория Hash Table / Heap). Файл: extra/05-top-k-frequent-words.md. Основное решение: tally (Hash) + sort_by [-count, word] — частота по убыванию, при равенстве лексикография по возрастанию. Альтернатива: min-heap размера k (O(n log k)); в Ruby нет стандартной кучи с компаратором — показан упрощённый вариант через sort_by, отмечено, что в production — algorithms gem / ручная куча. Верификация: 7 тестов на ruby (включая примеры из LeetCode и edge cases) — все прошли; оба блока Ruby-кода синтаксически корректны (ruby -c Syntax OK).
<!-- SECTION:NOTES:END -->

## Final Summary

<!-- SECTION:FINAL_SUMMARY:BEGIN -->
Создан extra/05-top-k-frequent-words.md (LeetCode #692, Medium, tally + sort/min-heap). Основное решение: hash-tally + sort_by [-count, word] (O(n log n)); альтернатива — min-heap размера k (O(n log k)). Верифицировано: 7 Ruby-тестов (оба примера LeetCode + edge cases) все прошли, оба блока кода Syntax OK.
<!-- SECTION:FINAL_SUMMARY:END -->
