CSDN话题挑战赛第2期
参赛话题:学习笔记
刷题打卡,第 二十三 天
题目一、927. 三等分
题目二、415....三等分
题目描述:
给定一个由 0 和 1 组成的数组 arr ,将数组分成 3 个非空的部分 ,使得所有这些部分表示相同的二进制值。...这三个部分所表示的二进制值相等。
如果无法做到,就返回 [-1, -1]。
注意,在考虑每个部分所表示的二进制时,应当将其看作一个整体。例如,[1,1,0] 表示十进制中的 6,而不会是 3。...1,1,0,0,1]
输出:[0,2]
/
提示:
3 <= arr.length <= 3 * 104
arr[i] 是 0 或 1
解题思路:
为了解决问题,我们需要将二进制数组分成三份,让它们非空且可以表示一样的值...如果sum不能被平均分成三等份,可以证明此二进制数组没办法分成三份表示相同值得二进制数,可以直接返回数组{-1,-1};
当数组中没有出现数字1,也就是sum = 0,无论我们如何分配,都能获取到三份非空的