Given an array?A
?of?0
s and?1
s, divide the array into 3 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:
A[0], A[1], ..., A[i]
?is the first part;A[i+1], A[i+2], ..., A[j-1]
?is the second part, andA[j], A[j+1], ..., A[A.length - 1]
?is the third part.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.
Example 1:
Input: [1,0,1,0,1]
Output: [0,3]
Example 2:
Input: [1,1,0,1,1]
Output: [-1,-1]
Note:
3 <= A.length <= 30000
A[i] == 0
?or?A[i] == 1
Github 同步地址:
https://github.com/grandyang/leetcode/issues/927
参考资料:
https://leetcode.com/problems/three-equal-parts/
LeetCode All in One 题目讲解汇总(持续更新中...)
[LeetCode] 927. Three Equal Parts 三个相等的部分
原文:https://www.cnblogs.com/grandyang/p/12107091.html