Understand Maximum Average Pass Ratio Problem

📚 Maximum Average Pass Ratio (LeetCode Problem 1792)

A school has multiple classes of students, and each class will have a final exam. Your task is to distribute a given number of extra brilliant students across these classes to maximize the average pass ratio. Here's how it works:


Problem Description

You are given:

1. classes:

A 2D array where each entry is of the form classes[i] = [passi, totali]:

  • passi: The number of students in the class who are guaranteed to pass.
  • totali: The total number of students in the class.

2. extraStudents:

An integer representing the number of extra students you can assign to any class. These students are guaranteed to pass in the class they're assigned to.


Definitions:

  • Pass Ratio of a Class:
    The ratio of passing students to total students:
Pass Ratio=passitotali\text{Pass Ratio} = \frac{\text{passi}}{\text{totali}}
  • Average Pass Ratio Across All Classes:
    The sum of pass ratios of all classes divided by the total number of classes.
Average Pass Ratio=(passitotali)n\text{Average Pass Ratio} = \frac{\sum \left( \frac{\text{passi}}{\text{totali}} \right)}{n}
  • where 𝑛 is the total number of classes.

Goal: Distribute the extraStudents in a way that maximizes the average pass ratio across all classes.


🧪 Test Cases:

Example 1:

Input: classes = [[1, 2], [3, 5], [2, 2]];              extraStudents = 2;

Output: 0.78333;

Example 2:

Input:
classes = [[2, 4], [3, 9], [4, 5], [2, 10]]
extraStudents = 4

Output:
0.53485

✅ Constraints:

1classes.length1051 \leq \text{classes.length} \leq 10^5 classes[i].length==2\text{classes}[i].\text{length} == 2 1passitotali1051 \leq \text{passi} \leq \text{totali} \leq 10^5 1extraStudents1051 \leq \text{extraStudents} \leq 10^5
Category:
  • Greedy
Programming Language:
  • Java
Reference Link:

https://leetcode.com/problems/maximum-average-pass-ratio/description/?envType=daily-question&envId=2024-12-15

Java
Output:

Loading component...

Loading component...