当前位置: 首页 > article >正文

Leetcode::3432. 统计元素和差值为偶数的分区方案

3432. 统计元素和差值为偶数的分区方案

已解答

简单

相关企业

提示

给你一个长度为 n 的整数数组 nums 。

分区 是指将数组按照下标 i (0 <= i < n - 1)划分成两个 非空 子数组,其中:

  • 左子数组包含区间 [0, i] 内的所有下标。
  • 右子数组包含区间 [i + 1, n - 1] 内的所有下标。

对左子数组和右子数组先求元素  再做  ,统计并返回差值为 偶数 的 分区 方案数。

示例 1:

输入:nums = [10,10,3,7,6]

输出:4

解释:

共有 4 个满足题意的分区方案:

  • [10][10, 3, 7, 6] 元素和的差值为 10 - 26 = -16 ,是偶数。
  • [10, 10][3, 7, 6] 元素和的差值为 20 - 16 = 4,是偶数。
  • [10, 10, 3][7, 6] 元素和的差值为 23 - 13 = 10,是偶数。
  • [10, 10, 3, 7][6] 元素和的差值为 30 - 6 = 24,是偶数。

示例 2:

输入:nums = [1,2,2]

输出:0

解释:

不存在元素和的差值为偶数的分区方案。

示例 3:

输入:nums = [2,4,6,8]

输出:3

解释:

所有分区方案都满足元素和的差值为偶数。

提示:

  • 2 <= n == nums.length <= 100
  • 1 <= nums[i] <= 100

暴力解法:

class Solution {
public:
    int countPartitions(vector<int>& nums) {
        
        int res=0;
        int ans=0,arr=0;
        for(int i=1;i<nums.size();i++)
        {
            ans=0;
            arr=0;
            for(int j=0;j<i;j++){
                ans+=nums[j];
            }
            for(int j=i;j<nums.size();j++){
                arr+=nums[j];
            }

            if(abs(ans-arr)%2==0){
                res++;
            }
        }

        return res;
    }
};

前缀和:

class Solution {
public:
    int countPartitions(vector<int>& nums) {

        vector<int>ans;
        int res=0,k=0;

        for(int i=0;i<nums.size();i++){
            k+=nums[i];
            ans.push_back(k);
        }     

        for(int i=1;i<nums.size();i++){
            int t=ans[nums.size()-1]-ans[i-1];
            if((t-ans[i-1])%2==0){
                res++;
            }
        }

        return res;
    }
};


http://www.kler.cn/a/520746.html

相关文章:

  • KF-GINS源码阅读
  • JJJ:Linux - 高精度定时器 hrtimer
  • Neural networks 神经网络
  • 【vue3组件】【大文件上传】【断点续传】支持文件分块上传,能够在上传过程中暂停、继续上传的组件
  • 基于微信小程序的英语学习交流平台设计与实现(LW+源码+讲解)
  • 【PowerQuery专栏】PowerQuery的M语言函数Access数据库访问
  • 数据库、数据仓库、数据湖有什么不同
  • redis 实践与扩展
  • 【论文复现】一种改进哈里斯鹰优化算法用于连续和离散优化问题
  • SSM开发(三) spring与mybatis整合(含完整运行demo源码)
  • STM32 OLED屏配置
  • 新电脑第一次开机激活
  • 基于OpenCV实现的答题卡自动判卷系统
  • 【机器学习】深入探索SVM:支持向量机的原理与应用
  • 三角形的最大周长(LeetCode 976)
  • 项目测试之Jmeter
  • 第27篇 基于ARM A9处理器用C语言实现中断<三>
  • 配电自动化系统“三区四层”数字化架构
  • HTML<hgroup>标签
  • 【HuggingFace项目】:Open-R1 - DeepSeek-R1 大模型开源复现计划
  • Crawl4AI 人工智能自动采集数据
  • 类与对象(中)
  • Cline 3.2 重磅更新:免费调用 Claude Sonnet 3.5 和 GPT 4o,开发效率直接拉满!
  • MYSQL学习笔记(六):聚合函数、sql语句执行原理简要分析
  • 【SpringBoot教程】Spring Boot + MySQL + HikariCP 连接池整合教程
  • 【LeetCode: 40. 组合总和 II + 递归】