天天看點

927. 三等分

給定一個由

1

組成的數組 

A

,将數組分成 3 個非空的部分,使得所有這些部分表示相同的二進制值。

如果可以做到,請傳回任何 

[i, j]

,其中

i+1 < j

,這樣一來:

  • A[0], A[1], ..., A[i]

     組成第一部分;
  • A[i+1], A[i+2], ..., A[j-1]

     作為第二部分;
  • A[j], A[j+1], ..., A[A.length - 1]

    是第三部分。
  • 這三個部分所表示的二進制值相等。

如果無法做到,就傳回 

[-1, -1]

注意,在考慮每個部分所表示的二進制時,應當将其看作一個整體。例如,

[1,1,0]

 表示十進制中的 

6

,而不會是 

3

。此外,前導零也是被允許的,是以 

[0,1,1]

和 

[1,1]

 表示相同的值。

示例 1:

輸入:[1,0,1,0,1]
輸出:[0,3]
           

示例 2:

輸出:[1,1,0,1,1]
輸出:[-1,-1]
           

提示:

  1. 3 <= A.length <= 30000

  2. A[i] == 0

     或 

    A[i] == 1