FastPrepSchedule Batch Difference

Schedule Batch Difference

Salesforce logoSalesforce● MediumFULLTIMEOA
Learn

Problem statement

Given n servers with their capacity, we need to schedule k batches.

Input:

  • n (number of servers)
  • Capacity array of length n
  • k (batches)
  • numServers array of length k where numServers[i] = number of servers to be included in i-th batch

Output:

For each batch calculate difference between maximum and minimum server capacity, sum it over for all k batches and return it.

Function

scheduleBatchDifference(n: int, capacity: int[], k: int, numServers: int[]) → int

Examples

Example 1

n = 4capacity = [1, 2, 3, 4]k = 1numServers = [4]return = 3

Heads up 👉 This and the following 2 expanations are not from the official 🦔

There is only one batch, and it includes all servers. The difference between the maximum and minimum server capacity is 4 - 1 = 3.

Example 2

n = 4capacity = [1, 2, 3, 4]k = 4numServers = [1, 1, 1, 1]return = 0

Each batch includes only one server, so the difference between the maximum and minimum server capacity for each batch is 0. The total sum is 0.

Example 3

n = 4capacity = [1, 2, 3, 4]k = 2numServers = [2, 2]return = 4

The first batch can include servers with capacities 1 and 4, and the second batch can include servers with capacities 2 and 3. The difference for the first batch is 4 - 1 = 3, and for the second batch is 3 - 2 = 1. The total sum is 3 + 1 = 4.

Constraints

  • Summation of numServers[i] == n
  • n <= 1e6
  • k <= n

More Salesforce problems

See Salesforce hiring insights
public int scheduleBatchDifference(int n, int[] capacity, int k, int[] numServers) {
  // write your code here
}
n4
capacity[1, 2, 3, 4]
k1
numServers[4]
expected3
Checking account…