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;
    }
}
相关推荐
程序猿阿伟16 小时前
《量子算法开发实战手册:Python全栈能力的落地指南》
python·算法·量子计算
Seven9716 小时前
SPI机制:服务扩展的核心技术
java
wen__xvn16 小时前
代码随想录算法训练营DAY13第六章 二叉树part01
数据结构
木子020416 小时前
Java8集合list.parallelStream() 和 list.stream() 区别
数据结构·list
NE_STOP16 小时前
shiro_实现分布式会话SessionManager、限制密码重试次数和并发登录控制
java
Seven9716 小时前
剑指offer-63、数据流中的中位数
java
毕设源码-钟学长17 小时前
【开题答辩全过程】以 基于Spring Boot的社区养老服务管理系统的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
老鼠只爱大米17 小时前
LeetCode算法题详解 438:找到字符串中所有字母异位词
算法·leetcode·双指针·字符串匹配·字母异位词·滑动窗口算法
地平线开发者17 小时前
征程 6 | 平台 QAT 精度一致性问题分析流程
算法·自动驾驶
mjhcsp17 小时前
C++ Manacher 算法:原理、实现与应用全解析
java·c++·算法·manacher 算法