C# LeetCode 1792: Максимальное... Заметка
Сообщество RSS DEV

C# LeetCode 1792: Максимальное среднее соотношение сдачи - (Средний уровень)

Задача на LeetCode заключается в максимизации среднего показателя успешной сдачи экзамена (pass ratio) по нескольким классам путем добавления дополнительных студентов. Для эффективного отслеживания класса с наибольшим потенциальным приростом используется очередь с приоритетом. В очередь с приоритетом добавляются исходные значения количества сдавших экзамен (pass) и общего количества студентов (total) для каждого класса. Алгоритм итеративно распределяет дополнительных студентов в тот класс, который обеспечивает наибольшее улучшение показателя успешной сдачи. Прирост от добавления студента рассчитывается на основе разницы в показателях до и после добавления. Код на самом деле не добавляет студентов изначально; он только вычисляет гипотетический прирост. Этот расчет отдает приоритет классам для оптимизации общего улучшения показателя. После распределения всех дополнительных студентов, окончательный средний показатель успешной сдачи рассчитывается путем суммирования показателей всех классов. Код использует вспомогательные функции для расчета показателей и прироста. Очередь с приоритетом, использующая пользовательский компаратор, гарантирует, что всегда выбирается класс с наибольшим приростом. Окончательное среднее значение определяется делением общей суммы показателей на количество классов.