A.每日一题——3432. 统计元素和差值为偶数的分区方案

题目链接: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;
    }
}
相关推荐
零雲8 小时前
java面试:了解抽象类与接口么?讲一讲它们的区别
java·开发语言·面试
2401_831824968 小时前
代码性能剖析工具
开发语言·c++·算法
Sunshine for you9 小时前
C++中的职责链模式实战
开发语言·c++·算法
qq_416018729 小时前
C++中的状态模式
开发语言·c++·算法
2401_884563249 小时前
模板代码生成工具
开发语言·c++·算法
2401_8319207410 小时前
C++代码国际化支持
开发语言·c++·算法
m0_6727033110 小时前
上机练习第51天
数据结构·c++·算法
ArturiaZ10 小时前
【day60】
算法·深度优先·图论
2401_8512729910 小时前
自定义内存检测工具
开发语言·c++·算法
左左右右左右摇晃10 小时前
Java并发——synchronized锁
java·开发语言