Problem · Array

Play Segments

Learn this problem
EasyIBM logoIBMFULLTIMEOA
See IBM hiring insights

Problem statement

A game level contains n segments. A segment with value 1 gives the player one point, while a segment with value 0 subtracts one point.

Player 1 plays a prefix of the level and Player 2 plays all remaining segments. Player 1 may choose a prefix length from 0 through n.

Return the minimum number of segments Player 1 must play so that Player 1's final score is strictly greater than Player 2's final score.

Function

playSegments(coins: int[]) → int

Examples

Example 1

coins = [1, 1, 0, 1]return = 2

After one segment, both players score 1, so Player 1 is not ahead. After two segments, Player 1 scores 2 and Player 2 scores 0. Therefore the minimum prefix length is 2.

Constraints

  • 1 ≤ coins.length ≤ 10^5
  • coins[i] is either 0 or 1.
  • At least one prefix gives Player 1 a strictly greater score than Player 2.

More IBM problems

drafts saved locally
public int playSegments(int[] coins) {
    // Write your code here
}
coins[1, 1, 0, 1]
expected2
checking account