【leetcode--统计优美子数组】

解题思路
一、滑动窗口

不断右移 right 指针来扩大滑动窗口,使其包含 k 个奇数;

若当前滑动窗口包含了 k 个奇数,则如下「计算当前窗口的优美子数组个数」:

统计第 1 个奇数左边的偶数个数 leftEvenCnt。 这 leftEvenCnt 个偶数都可以作为「优美子数组」的起点,因此起点的选择有 leftEvenCnt + 1 种(因为可以一个偶数都不取,因此别忘了 +1 )。
统计第 k 个奇数右边的偶数个数 rightEvenCnt 。 这 rightEvenCnt 个偶数都可以作为「优美子数组」的终点,因此终点的选择有 rightEvenCnt + 1 种(因为可以一个偶数都不取,因此别忘了 +1 )。
因此「优美子数组」左右起点的选择组合数为 (leftEvenCnt + 1) * (rightEvenCnt + 1)。

class Solution:  def numberOfSubarrays(self, nums: List[int], k: int) -> int:  left = right = odd_cnt = res = 0  while right < len(nums):  if nums[right] % 2 == 1:  odd_cnt += 1  if odd_cnt == k:  tmp = right  while right < len(nums) and nums[right] % 2 == 0:  right += 1  right_even_cnt = right - tmp  left_even_cnt = 0  while left < len(nums) and nums[left] % 2 == 0:  left_even_cnt += 1  left += 1   res += (left_even_cnt + 1) * (right_even_cnt + 1)  left += 1  odd_cnt -= 1  right += 1  return res  


参考链接:https://leetcode.cn/problems/count-number-of-nice-subarrays/solutions/213352/hua-dong-chuang-kou-qian-zhui-he-bi-xu-miao-dong-b/
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/24119.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录算法训练营第30天|回溯

回溯part06 332. 重新安排行程 写了好长时间&#xff0c;最后超时了qaq /*** param {string[][]} tickets* return {string[]}*///ticket[1] [2,3]表示航线1是从地点2飞到地点3的 //所有机票必须用过一次 //优先选取字典排序更小的行程 var findItinerary function(ticket…

耐酸碱腐蚀可溶性聚四氟乙烯(PFA)溶样罐

PFA溶样罐也叫PFA溶样瓶&#xff0c;可直接放在加热板上及油浴里加热&#xff0c;也可液氮下长期保存&#xff0c;使用温度-200—260℃。 根据不同实验的需求&#xff0c;PFA溶样罐有U型、V型、平底3种设计。V型底的设计&#xff0c;更加方便少量样品的集中收集。溶样罐广泛用…

Java 实验8 集合类

&#xff08;一&#xff09;实验目的 1、掌握JAVA集合类中的Collection的特点及其应用情形&#xff1b; 3、掌握Collection、熟悉集合的特点及应用。 &#xff08;二&#xff09;实验内容和步骤 1、仿照课堂练习的MyStack示例&#xff0c;使用LinkedList集合类实现一个先进…

Jira的原理及应用详解(三)

本系列文章简介: 在当今快速发展的软件开发和项目管理领域,有效的团队协作和精确的项目进度追踪是确保项目成功的关键。Jira作为一款广受欢迎的项目和问题追踪工具,以其强大的功能、灵活的定制性以及卓越的用户体验,赢得了全球众多企业的青睐。 Jira最初由Atlassian公司开发…

MTK默认开启Modem Log

基于Android12&#xff0c;user默认开启Modem Log。 修改分为三部分&#xff1a; 1.config修改 --- a/alps/device/mediatek/common/mtklog/mtklog-config-basic-user.propb/alps/device/mediatek/common/mtklog/mtklog-config-basic-user.prop-3,12 3,12 mtklog_path sys…

采购管理软件怎么选才不踩坑?收下这14 步清单

自动化采购任务和优化从采购到付款的周期可以为企业节省大量的资金和时间。但采用过时的采购方法&#xff08;基于纸张的系统或 excel 电子表格&#xff09;&#xff0c;不可能获得这些好处。 采购管理软件之所以重要&#xff0c;是因为它为企业提供了有效跟踪、管理和分析支出…

DolphinScheduler调度系统

Apache DolphinScheduler 是一个开源的调度系统。它是一个分布式、大数据工作流调度系统&#xff0c;专门为数据工程师、数据科学家和数据分析师设计&#xff0c;提供了丰富的功能来管理和调度大数据处理任务。以下是关于 Apache DolphinScheduler 的一些关键点&#xff1a; 主…

数据库管理工具——DBeaver简介

在数据库管理的世界里&#xff0c;选择一个高效、稳定且易于使用的工具至关重要。今天&#xff0c;我将为大家介绍一款备受好评的数据库管理工具——DBeaver&#xff0c;并详细讲解其使用方法。 一、DBeaver简介 DBeaver是一个基于Java的开源数据库管理工具&#xff0c;支持几…

探索多头混合专家(MH-MoE)模型的先进架构

在深度学习领域&#xff0c;大型模型如大型语言模型&#xff08;LLMs&#xff09;和大型多模态模型&#xff08;LMMs&#xff09;因其在各个领域的有效性而受到广泛关注。然而&#xff0c;这些模型在训练和推理时面临着巨大的计算成本。为了解决这一问题&#xff0c;研究者们提…

多分类混淆矩阵详解

⭐️ 前言 在机器学习和数据科学中&#xff0c;混淆矩阵&#xff08;Confusion Matrix&#xff09;是一个重要的工具&#xff0c;用于评估分类模型的性能。特别是在多分类问题中&#xff0c;混淆矩阵能够清晰地展示模型在每个类别上的预测结果。以下是对多分类混淆矩阵的详细解…

IDEA下项目发送到Gitee

一、首先在Gitee创建一个仓库&#xff08;什么都不选&#xff0c;这是最简单的方式&#xff0c;否则需要 pull push等一些操作&#xff0c;我嫌麻烦&#xff09; 二、按图点击&#xff08;创建存储区&#xff0c;选择你要上传的项目&#xff09; 三、按图点击后正常文件名会变绿…

python中关于函数的两种链式调用

函数之间的嵌套调用之函数的返回值就是另一个函数的参数 用一个函数的返回值作为另一个函数的参数。 如上图所示&#xff0c;将is0dd&#xff08;10&#xff09;的结果交给print函数来执行。 如上图所示&#xff0c;也是一个链式调用的案例&#xff0c;先将add&#xff08;x&a…

gitlab之cicd的gitlab-runner cicd实践-rpm离线安装

目录 概述资源官方资源离线资源 操作环境验证gitlab-runner安装注意事项重启向gitlab注册CICD流程测试 概述 gitlab此文使用rpm离线安装的方式&#xff0c;使用 gitlab-runner dockerfile构建运行环境&#xff1a; 如有兴趣可以参考这篇文章   gitlab选择 docker-compose 执行…

关于JavaScript技术的基础内容汇总

目录 JavaScript 基础知识1. JavaScript 基本语法2. 变量和常量3. 数据类型4. 运算符5. 控制结构6. 函数7. 对象8. 数组9. 事件处理10. DOM 操作 JavaScript 基础知识 学习 JavaScript&#xff08;简称 JS&#xff09;是前端开发的重要组成部分&#xff0c;它是一种动态的、弱…

GIGE 协议摘录 —— GVCP 协议(二)

系列文章目录 GIGE 学习笔记 GIGE 协议摘录 —— 设备发现&#xff08;一&#xff09; GIGE 协议摘录 —— GVCP 协议&#xff08;二&#xff09; GIGE 协议摘录 —— GVSP 协议&#xff08;三&#xff09; GIGE 协议摘录 —— 引导寄存器&#xff08;四&#xff09; GIGE 协议…

新品!和芯星通全系统全频高精度板卡UB9A0首发

6月6日&#xff0c;和芯星通发布了UB9A0全系统全频高精度GNSS板卡&#xff0c;主要应用于CORS站、便携基站、GNSS全球监测跟踪站等。延续了上一代产品高质量原始观测量的特点&#xff0c;UB9A0在性能和稳定性方面均表现出众。 UB9A0基于射频基带及高精度算法一体化的GNSS SoC芯…

新能源汽车内卷真相

导语&#xff1a;2025年&#xff0c;我国新能源汽车总产能预计可达3661万辆&#xff0c;如此产能如何消化&#xff1f; 文 | 胡安 “这样卷下去不是办法&#xff0c;企业目的是什么&#xff1f;是盈利&#xff0c;为国家作贡献&#xff0c;为社会作贡献。我们应该有大格局&…

k8s更改master节点IP

背景 搭建集群的同事未规划网络&#xff0c;导致其中有一台master ip是192.168.7.173&#xff0c;和其他集群节点的IP192.168.0.x或192.168.1.x相隔太远&#xff0c;现在需要对网络做整改&#xff0c;方便管理配置诸如绑定限速等操作。 master节点是3节点的。此博客属于事后记…

问题:1、彩色餐巾可以渲染就餐气氛,下列说法错误的是 #知识分享#其他

问题&#xff1a;1、彩色餐巾可以渲染就餐气氛&#xff0c;下列说法错误的是 A&#xff0e;如艳红、大红餐巾给人以庄重热烈的感觉&#xff1b; B&#xff0e;橘黄、鹅黄色餐巾给人以高贵典雅的感觉&#xff1b; C&#xff0e;湖蓝色在夏天能给人以凉爽、舒适之感&#xff1…

MySQL清空所有表的数据的方法

1.MySQL清空所有表的数据的方法 要清空MySQL数据库中所有表的数据&#xff0c;但保留表结构&#xff0c;我们可以采取以下几种方法。这里&#xff0c;我将提供几种常用的方法&#xff0c;并给出相应的SQL代码示例。 1.1方法一&#xff1a;使用TRUNCATE TABLE命令&#xff08;…