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

2026-01-17-牛客刷题笔记-有趣的区间

题目信息

  • 平台:牛客
  • 题目:有趣的区间
  • 题目链接

题目描述

给定长度为 n 的整数数组,统计满足条件的子区间数量。根据代码语义推断:区间内至少包含一个奇数时,该区间被视为“有趣”。


初步思路

  1. 总子区间数为 n*(n+1)/2。
  2. 只要扣掉“全为偶数”的子区间数,剩下的就是至少包含一个奇数的区间数。
  3. 统计连续偶数段长度 len,每段贡献 len*(len+1)/2。

算法分析

  • 核心:总区间数减去全偶区间数
  • 技巧:用一个计数器累积连续偶数长度,遇到奇数就结算
  • 正确性简述:任一区间要么含奇数要么全偶,两类互斥且覆盖全部,扣除全偶即可得到答案
  • 时间复杂度:O(n)
  • 空间复杂度:O(1)

代码实现(C++)

#include<iostream>usingnamespacestd;intmain(){ios::sync_with_stdio(false);cin.tie(nullptr);longlongn;cin>>n;longlonglen=0;longlongtotal=n*(n+1)/2;// 总区间数longlongbad=0;// 全偶区间数for(inti=0;i<n;++i){longlonga;cin>>a;if((a&1)==0){// 偶数len++;}else{// 奇数,结算一段连续偶数bad+=len*(len+1)/2;len=0;}}bad+=len*(len+1)/2;// 处理末尾偶数段cout<<(total-bad)<<"\n";return0;}

测试用例

输入输出说明
n=3, a=[1,2,4]4总区间 6,全偶区间 2
n=4, a=[2,4,6,8]0全偶,全部扣除
n=5, a=[1,3,5,7,9]15无全偶区间,等于总数

总结与反思

  1. 这类“至少包含某类元素”的计数题,常用补集思路更直接。
  2. 连续段计数公式要记牢:len*(len+1)/2。
http://www.jsqmd.com/news/262188/

相关文章:

  • ‌AI伦理在软件开发中的雷区:如何避免灾难性bug‌
  • GESP认证C++编程真题解析 | 202406 八级
  • RPC分布式通信(3)--RPC基础框架接口
  • 2026-01-17-LeetCode刷题笔记-3047-求交集区域内的最大正方形面积
  • 2025年广州市“人工智能+“典型案例集
  • 实用指南:零基础学AI大模型之Milvus DML实战
  • DeepSeek V4架构深度解析:梁文锋团队开辟的「存算分离」新范式
  • 2026年量子计算:算力革命与安全新范式报告
  • 互联网大厂Java求职面试实战:从微服务到AI集成的全栈技术问答
  • Fun-ASR-MLT-Nano-2512语音餐饮:点餐语音识别系统
  • 详细介绍:Apache Flink SQL 入门与常见问题解析
  • Qwen2.5-7B-Instruct部署教程:智能数据分析流水线
  • 基于Java ssm家庭财务管理系统(源码+文档+运行视频+讲解视频)
  • PyTorch-2.x降本增效实战:纯净系统+阿里源部署省时50%
  • 基于Java springboot医院低值耗材管理系统耗材出入库(源码+文档+运行视频+讲解视频)
  • 零基础理解TC3xx中AUTOSAR OS的保护机制核心要点
  • YOLOv9教育科研应用:高校计算机视觉课程实验设计
  • 如何用cv_unet_image-matting实现精准人像抠图?保姆级WebUI部署教程入门必看
  • Whisper语音识别优化:减少GPU显存占用的7个技巧
  • 一文说清USB接口的供电与充电规范
  • 挑战与应对:大数据报表生成时效性达标测试实战指南
  • 5个开源翻译模型推荐:HY-MT1.5-1.8B镜像免配置一键部署
  • 视频会议系统弱网络适应性验收框架
  • python基于Vue3的足球迷球圈网站内容文章更新系统的设计与实现
  • Supertonic大模型镜像深度解析|极速本地化TTS技术落地指南
  • AI智能二维码工坊教程:安全加密二维码的生成与识别
  • bge-large-zh-v1.5实战教程:智能写作查重系统开发
  • Windows共享连接上网选ICS还是NAT?
  • miracl库的安装
  • 【技术选型】浏览器插件 vs 桌面客户端:为什么跨境电商批量修图必须用 Python 本地化软件?