2023-03-16:给定一个由 0 和 1 组成的数组 arr ,将数组分成 3 个非空的部分,
使得所有这些部分表示相同的二进制值。...,
arrj, arrj + 1, ..., arrarr.length - 1 为第三部分,
这三个部分所表示的二进制值相等,
如果无法做到,就返回 -1, -1。...注意,在考虑每个部分所表示的二进制时,应当将其看作一个整体,
例如,1,1,0 表示十进制中的 6,而不会是 3。此外,前导零也是被允许的,
所以 0,1,1 和 1,1 表示相同的值。...解法思路:
首先统计整个数组中 1 的数量 ones,如果 ones 不能被 3 整除,则说明无法分成三个相等的部分,直接返回 -1, -1。...另外,可以使用位运算来加速计算当前部分的二进制数值。
总之,对于此类问题,需要先分析题目要求,找到合适的算法思路,再实现具体的代码。