LeetCode有效数组划分疑问:为何[1,1,1,2]判定为无效?
问题解答
你对示例2的划分存在一个关键错误:数组的分区必须是连续且不重叠的子数组,要完整覆盖整个原数组,不能重复使用元素,也不能遗漏。
原数组[1,1,1,2]的长度是4,而你设想的[1,1]和[1,1,1]总长度是2+3=5,明显超出了原数组长度,这意味着你重复使用了中间的那个1,这不符合题目的分区规则。
我们来逐一排查这个数组的所有可能有效分区路径:
- 若先取前2个元素
[1,1](符合条件1),剩余元素是[1,2],这两个元素既不满足“2个相等元素”,也无法构成其他两种合法子数组,因此这条路径走不通。 - 若先取前3个元素
[1,1,1](符合条件2),剩余元素是[2],单个元素无法满足任何分区条件,这条路径也走不通。 - 不存在其他合法的初始切分方式(比如切1个元素直接不合法),因此整个数组无法被有效分区,判定为无效。
内容的提问来源于stack exchange,提问作者Mina Eskandar
相关产品推荐
相关产品推荐

