FastPrepFastPrep
Problem Brief

Group Students (AS Intern, it may apply to other interns) πŸ‘

INTERNNEW GRADOA
See Amazon online assessment and hiring insights

Amazon Technical Academy (ATA) provides in-demand, technical training to current Amazon employees looking to broaden their skill sets. ATA has admitted a group of n prospective trainees with varying skill levels. To better accommodate the trainees, ATA has decided to create classes tailored to the skill levels. A placement examination will return a skill level that will be used to group the trainees into classes, where levels[i] represents the skill level of trainee i. All trainees within a class must have a skill level within maxSpread, a specified range of one another. Determine the minimum number of classes that must be formed.

Function Description

Complete the function groupStudents in the editor.

groupStudents has the following parameter(s):

  1. int levels[n]: the skill level for each student
  2. int maxSpread: the maximum allowed skill level difference between any two members of a class

Returns

int: the minimum number of classes that can be formed

1Example 1

Input
levels = [1, 4, 7, 3, 4], maxSpread = 2
Output
3
Explanation
The trainees in any class must be within maxSpread = 2 levels of each other. In this case, one optimal grouping is (1, 3), (4, 4), and (7). Another possible grouping is (1), (3, 4, 4), (7). There is no way to form fewer than 3 classes.

Constraints

Limits and guarantees your solution can rely on.

1 <= n <= 105 1 <- levels[i] <= 109 for every i (where 0 <= i <= n - 1) 0 <= maxSpread <= 109
public int groupStudents(int[] levels, int maxSpread) {
    // write your code here
}
Input

levels

[1, 4, 7, 3, 4]

maxSpread

2

Output

3

Sign in to submit your solution.