J
JavaScript | LeetCode
@easy_frontend_task9.0K подп.
593просмотров
6.6%от подписчиков
17 марта 2026 г.
statsScore: 652
Задача: 621. Task Scheduler Сложность: medium Вам дан массив задач процессора, каждая из которых представлена буквами от A до Z, и время охлаждения, n. Каждый цикл или интервал позволяет завершить одну задачу. Задачи могут быть выполнены в любом порядке, но есть ограничение: одинаковые задачи должны быть разделены не менее чем n интервалами из-за времени охлаждения. Верните минимальное количество интервалов, необходимое для выполнения всех задач. Пример: Input: tasks = ["A","A","A","B","B","B"], n = 2 Output: 8 👨‍💻 Алгоритм: 1⃣Подсчитайте количество каждой задачи и найдите максимальное количество вхождений (maxFreq). 2⃣Вычислите количество интервалов, необходимых для задач с maxFreq: (maxFreq - 1) (n + 1) + countMaxFreq, где countMaxFreq - количество задач, имеющих maxFreq. 3⃣Верните максимум между вычисленным значением и длиной массива задач, поскольку некоторые задачи могут заполнять интервал до n. 😎 Решение: function leastInterval(tasks, n) { const taskCounts = {}; for (const task of tasks) { taskCounts[task] = (taskCounts[task] || 0) + 1; } const maxFreq = Math.max(...Object.values(taskCounts)); const countMaxFreq = Object.values(taskCounts).filter(count => count === maxFreq).length; return Math.max(tasks.length, (maxFreq - 1) (n + 1) + countMaxFreq); } Ставь 👍 и забирай 📚 Базу знаний
593
просмотров
1363
символов
Да
эмодзи
Нет
медиа

Другие посты @easy_frontend_task

Все посты канала →