Maximum System Memory Capacity
Learn this problemProblem statement
Amazon is optimizing the capacity of a cloud system with n servers. The memory capacity of the i-th server is memory[i].
A system uses an even number of servers. If it uses 2x servers, exactly x are primary servers and the other x are backup servers. For every primary server P, it must be paired with a distinct backup server B whose memory capacity is at least that of P.
The system memory capacity is the sum of the memory capacities of all primary servers. You may leave servers unused. Given memory, return the maximum system memory capacity that can be formed.
Complete maximumCapacity, which receives the integer array memory and returns the maximum capacity as a long.
Function
maximumCapacity(memory: int[]) → longExamples
Example 1
memory = [1, 2, 1, 2]return = 3Example 2
memory = [1, 2, 1]return = 1Example 3
memory = [2, 4, 3, 1, 2]return = 5
Given 5 servers as [serverA, serverB, serverC, serverD, serverE] having memory = [2, 4, 3, 1, 2].
| Primary Servers Options | Backup Servers Options | Conditions | Valid Option |
|---|---|---|---|
serverA, serverB |
serverC, serverD |
memory[serverA] <= memory[serverC], memory[serverB] <= memory[serverD] |
No |
serverA, serverD |
serverB, serverE |
memory[serverA] <= memory[serverB], memory[serverD] <= memory[serverE] |
Yes |
serverA, serverC |
serverE, serverB |
memory[serverA] <= memory[serverE], memory[serverC] <= memory[serverB] |
Yes |
In the second configuration, the system memory capacity is memory[serverA] + memory[serverD] = 3.
While in the third configuration, it is memory[serverA] + memory[serverC] = 5.
Hence, the maximum system memory capacity is 5.
Constraints
2 ≤ n ≤ 2 * 10^51 ≤ size[i] ≤ 10^9