已经给出了一个数组。该数组仅包含正元素。它包含偶数和奇数元素。我需要找到一种方法将数组划分为一个或多个子数组,使得每个子数组的总和都是奇数。
例如:(1, 1, 2, 1) 可以被除以使得每个子数组和都是奇数
我正在考虑动态编程方法,但我认为它行不通,因为约束非常高。
注意:这不是答案,而是评论(我没有足够的声誉来发表评论)。所以,当任何有代表的人。 > 50 非常乐意将我的问题粘贴为评论,请回复此“答案”,以便我可以将其删除。
根据您的示例,不允许对元素进行重新排序(排列)(否则,结果将与 3 不同)
但是子数组是否必须包含初始数组的连续元素?或者我们可以在形成子数组时选择一个元素,跳过第二个元素,然后再次选择第三个元素吗?
我能想到的最简单的例子是 {11, 21, 31, 40}
如果允许元素不连续,我们可以有3种解决方案: [11,40] [21] [31]; [11][21,40][31]; [11][21][31,40]
如果连续元素是约束,则只有最后一个解决方案有效。