hardArrayMath 0 views

Three Equal Parts

You are given an array arr which consists of only zeros and ones, divide the array into three non-empty parts such that all of these parts represent the same binary value.

You are given an array arr which consists of only zeros and ones, divide the array into three non-empty parts such that all of these parts represent the same binary value.

If it is possible, return any [i, j] with i + 1 < j, such that:

If it is not possible, return [-1, -1].

Note that the entire part is used when considering what binary value it represents. For example, [1,1,0] represents 6 in decimal, not 3. Also, leading zeros are allowed, so [0,1,1] and [1,1] represent the same value.

Three Equal Parts diagram

Example 1

Input: arr = [1,0,1,0,1]

Output: [0,3]

Example 2

Input: arr = [1,1,0,1,1]

Output: [-1,-1]

Example 3

Input: arr = [1,1,0,0,1]

Output: [0,2]

Constraints

  • 3 <= arr.length <= 3 * 10^4
  • arr[i] is 0 or 1

Hints

No hints yet.

Companies

No companies reported yet.

Discussion

Sign in to join the discussion.

Loading discussion...

Test results

No test cases yet.