2026/4/3 4:45:18
网站建设
项目流程
网站开发完成如何上线,wordpress多用户评论,兰州市城市建设设计院,人力资源公司代缴社保合法吗题目信息
平台#xff1a;牛客题目#xff1a;有趣的区间题目链接 题目描述
给定长度为 n 的整数数组#xff0c;统计满足条件的子区间数量。根据代码语义推断#xff1a;区间内至少包含一个奇数时#xff0c;该区间被视为“有趣”。 初步思路
总子区间数为 n*(n1)/2。…题目信息平台牛客题目有趣的区间题目链接题目描述给定长度为 n 的整数数组统计满足条件的子区间数量。根据代码语义推断区间内至少包含一个奇数时该区间被视为“有趣”。初步思路总子区间数为 n*(n1)/2。只要扣掉“全为偶数”的子区间数剩下的就是至少包含一个奇数的区间数。统计连续偶数段长度 len每段贡献 len*(len1)/2。算法分析核心总区间数减去全偶区间数技巧用一个计数器累积连续偶数长度遇到奇数就结算正确性简述任一区间要么含奇数要么全偶两类互斥且覆盖全部扣除全偶即可得到答案时间复杂度O(n)空间复杂度O(1)代码实现C#includeiostreamusingnamespacestd;intmain(){ios::sync_with_stdio(false);cin.tie(nullptr);longlongn;cinn;longlonglen0;longlongtotaln*(n1)/2;// 总区间数longlongbad0;// 全偶区间数for(inti0;in;i){longlonga;cina;if((a1)0){// 偶数len;}else{// 奇数结算一段连续偶数badlen*(len1)/2;len0;}}badlen*(len1)/2;// 处理末尾偶数段cout(total-bad)\n;return0;}测试用例输入输出说明n3, a[1,2,4]4总区间 6全偶区间 2n4, a[2,4,6,8]0全偶全部扣除n5, a[1,3,5,7,9]15无全偶区间等于总数总结与反思这类“至少包含某类元素”的计数题常用补集思路更直接。连续段计数公式要记牢len*(len1)/2。