题目链接:3432. 统计元素和差值为偶数的分区方案(简单)
算法原理:
解法:数学
击败65.69%
时间复杂度O(N)
①先算出总和sum
②遍历每个数的同时取左子区间和lsum
③右子区间和自然就是rsum=sum-lsum
④判断两个差是否是偶数即可
Java代码:
java
class Solution {
public int countPartitions(int[] nums) {
int sum=0,ret=0;
for(int x:nums) sum+=x;
int lsum=0,n=nums.length;
//不用走到头,因为sum为偶数时会重复计算两次
for(int i=0;i<n-1;i++){
lsum+=nums[i];//左子区间的和
int rsum=sum-lsum;//右子区间的和
if((lsum-rsum)%2==0) ret++;
}
return ret;
}
}