Problem · Array

Maximum Escape Game Score

Learn this problem
MediumMicrosoft logoMicrosoftOA
See Microsoft hiring insights

Problem statement

In an escape game, players must solve puzzles to earn points and progress. One puzzle involves an array of integers and specific rules for earning points. Here are the rules:

  1. Select a value v. Remove all occurrences of that value from the array and add their sum to your score.
  2. Remove all elements equal to v + 1 or v - 1 without scoring points.
  3. Repeat steps 1 and 2 until the array is empty.

Determine the maximum score that can be obtained by following these rules.

Function

maxEscapeGameScore(elements: int[]) → int

Examples

Example 1

elements = [5, 6, 6, 4, 11]return = 27

Delete 11 for 11 points. Since there are no elements equal to 11 - 1 = 10 or 11 + 1 = 12, proceed with the remaining elements: [5, 6, 6, 4].

Delete the two 6s for 12 more points. Delete any elements equal to 6 - 1 = 5 or 6 + 1 = 7. Then proceed with the remaining elements: [4].

Deleting 4 gives 4 more points, so the total score is 11 + 12 + 4 = 27.

More Microsoft problems

drafts saved locally
public int maxEscapeGameScore(int[] elements) {
  // write your code here
}
elements[5, 6, 6, 4, 11]
expected27
checking account