3432: 统计元素和差值为偶数的分区方案
设 nums 的元素和为 S,左子数组元素和为 L,那么右子数组的元素和为 S−L
题目要求 L−(S−L)=2L−S 是偶数。由于 2L 一定是偶数,所以只需关注 S 的奇偶性:
- 如果 S 是奇数,偶数减奇数一定是奇数,答案是 0。
- 如果 S 是偶数,偶数减偶数一定是偶数,所有分区方案都符合要求,答案是 n−1。
上述结论与 i 无关。
class Solution {
public:
int countPartitions(vector<int>& nums) {
int n=nums.size();
int x=reduce(nums.begin(),nums.end(),0);
if(x%2==0) return n-1;
else return 0;
}
};