Problem · Array

Get Minimum Value

EasyAmazonNEW GRADOA
See Amazon hiring insights

Amazon Prime Games is designing a game. The player needs to pass n rounds sequentially in this game. Rules of play are as follows:

  • The player loses power[i] health to complete round i.
  • The player's health must be greater than 0 at all times.
  • The player can choose to use armor in any one round. The armor will prevent damage of min(armor, power[i]).
  • Determine the minimum starting health for a player to win the game.

    Function Description

    Complete the function getMinimumValue in the editor below.

    getMinimumValue has the following parameters:

    • int power[n]: the health cost of each round
    • int armor: the maximum amount of health that may be returned one round only

    Returns

    int: the minimum amount of health required at the beginning of the game

    Examples
    01 · Example 1
    power = [1, 2, 6, 7]
    armor = 5
    return = 12
    Example 1 illustration

    Give the player 12 units of health at the beginning of the game. One of the optimal strategies is to use the armor in the third round and only lose 1 unit instead of 6. The health of the player after each round is:

    • Round 1: 12
    • Round 2: 11
    • Round 3: 9
    • Round 4: 8
    • Final: 1

    Round, health

    1. 0. 12
    2. 1. 12 - power[0] = 12 - 1 = 11
    3. 2. 11 - power[1] = 11 - 2 = 9
    4. 3. 9 - power[2] + armor = 9 - 6 + 5 = 8
    5. 4. 8 - power[3] = 8 - 7 = 1

    No lower starting health will allow a win.

    More Amazon problems
    drafts saved locally
    public int getMinimumValue(int[] power, int armor) {
      // write your code here
    }
    
    power[1, 2, 6, 7]
    armor5
    expected12
    sign in to submit