Communauté RSS DEV
Suivre
C# LeetCode 1792 : Ratio de passage moyen maximal - (Moyen)
Le problème LeetCode nécessite de maximiser le ratio de passage moyen à travers plusieurs classes en ajoutant des étudiants supplémentaires. Une file d'attente de priorité est utilisée pour suivre efficacement la classe ayant le gain potentiel le plus élevé. Le nombre initial d'étudiants ayant réussi et le nombre total d'étudiants pour chaque classe sont ajoutés à la file d'attente de priorité. L'algorithme attribue itérativement des étudiants supplémentaires à la classe qui donne l'amélioration la plus importante de son ratio de passage. Le gain obtenu en ajoutant un étudiant est calculé en fonction de la différence de ratios avant et après l'ajout. Le code ne rajoute pas réellement d'étudiants au début ; il ne calcule que le gain hypothétique. Ce calcul donne la priorité aux classes pour optimiser l'amélioration globale du ratio. Après avoir attribué tous les étudiants supplémentaires, le ratio de passage moyen final est calculé en additionnant les ratios de toutes les classes. Le code utilise des fonctions d'aide pour calculer le ratio et le gain. La file d'attente de priorité, utilisant un comparateur personnalisé, garantit que la classe ayant le gain le plus élevé est toujours sélectionnée. La moyenne finale est déterminée en divisant la somme totale des ratios par le nombre de classes.