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

【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/
 

相关文章:

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

解题思路 一、滑动窗口 不断右移 right 指针来扩大滑动窗口&#xff0c;使其包含 k 个奇数&#xff1b; 若当前滑动窗口包含了 k 个奇数&#xff0c;则如下「计算当前窗口的优美子数组个数」&#xff1a; 统计第 1 个奇数左边的偶数个数 leftEvenCnt。 这 leftEvenCnt 个偶数…...

开源模型应用落地-LangChain高阶-LCEL-表达式语言(二)

一、前言 尽管现在的大语言模型已经非常强大,可以解决许多问题,但在处理复杂情况时,仍然需要进行多个步骤或整合不同的流程才能达到最终的目标。然而,现在可以利用langchain来使得模型的应用变得更加直接和简单。 LCEL是什么? LCEL是一种非常灵活和强大的语言,可以帮助您更…...

shell脚本对编码和行尾符敏感吗

问题 我正在 macOS 上制作一个 NW.js 应用程序&#xff0c;并想通过双击图标在开发模式下运行该应用程序。在第一步中&#xff0c;我试图使我的 shell 脚本正常工作。 在 Windows 上使用 VS Code&#xff0c;我在项目的根目录下创建了一个 run-nw 文件&#xff0c;包含以下内…...

神经网络----现有网络的下载和使用(vgg16)

以下两种方法已经用不了 vgg16_false torchvision.models.vgg16(pretrainedFalse) vgg16_true torchvision.models.vgg16(pretrainedTrue) 改为 vgg16_model0 vgg16(weightsNone) #vgg16_false vgg16_model1 vgg16(weightsVGG16_Weights.DEFAULT) # pretrained vgg16_…...

Java 异常处理 - 自定义异常

在Java中&#xff0c;自定义异常是一种创建新异常类的方式&#xff0c;这些异常类继承自Throwable类或其子类Exception&#xff08;或RuntimeException&#xff0c;如果它是运行时异常的话&#xff09;。自定义异常通常用于描述特定于应用程序的错误情况&#xff0c;以便为调用…...

Excel 交叉表的格转成列,行转成格

Excel里交叉表的左表头是卡车号&#xff0c;上表头是工作&#xff0c;交叉格是工作编号。 ABCD1Truck NumberJob1Job2Job3271592859285928372395859282971473297159282971 要求&#xff1a;将交叉格转为列&#xff0c;左表头转为格。 ABC1297139585928272727137371473715726…...

【C++软件调试技术】什么是pdb文件?如何使用pdb文件?哪些工具需要使用pdb文件?

目录 1、什么是pdb文件? 2、如何配置生成pdb文件? 3、pdb文件的时间戳和文件名称 3.1、pdb文件的时间戳 3.2、pdb文件的文件名称 4、有pdb文件才能在Visual Studio中调试代码 5、在Windbg中使用pdb文件 5.1、使用lm命令查看二进制文件的时间戳,去查找对应版本的pdb文…...

如何搭建一台永久运行的个人服务器?

一、前言 由于本人在这段时候&#xff0c;看到了一个叫做树莓派的东东&#xff0c;初步了解之后觉得很有意思&#xff0c;于是想把整个过程记录下来。 二、树莓派是什么&#xff1f; Raspberry Pi(中文名为树莓派,简写为RPi&#xff0c;(或者RasPi / RPI) 是为学习计算机编程…...

Ant Design+react 表单只读

表单禁用&#xff0c;样式不好看&#xff0c;不符合甲方标准&#xff0c;看了一下文档&#xff0c;select、radio等都不支持只读状态。 解决方法&#xff1a; 利用css3的point-events属性&#xff0c;设置为none 在查看弹窗时&#xff0c;传入一个变量&#xff0c;当变量为true…...

推荐系统三十六式学习笔记:原理篇.近邻推荐07|人以群分,你是什么人就看到什么世界

目录 协同过滤基于用户的协同过滤背后的思想原理实践1、构造矩阵2、相似度计算3、推荐计算4、一些改进 应用场景&#xff1a;总结 谈及推荐系统&#xff0c;不得不说大名鼎鼎的协同过滤。协同过滤的重点在于协同&#xff0c;所谓协同&#xff0c;也就是群体互帮互助&#xff0c…...

要改进单例模式的实现以确保线程安全并优化性能,有几种常见的方法

要改进单例模式的实现以确保线程安全并优化性能&#xff0c;有几种常见的方法。以下是几种改进 ThreadUtil 单例实现的方法&#xff1a; ### 1. 懒汉式&#xff08;线程安全版&#xff09; 使用同步机制来确保线程安全&#xff0c;但只在第一次创建实例时同步&#xff0c;这样…...

k8s——Pod容器中的存储方式及PV、PVC

一、Pod容器中的存储方式 需要存储方式前提&#xff1a;容器磁盘上的文件的生命周期是短暂的&#xff0c;这就使得在容器中运行重要应用时会出现一些问题。 首先&#xff0c;当容器崩溃时&#xff0c;kubelet 会重启它&#xff0c;但是容器中的文件将丢失——容器以干净的状态&…...

Java/Golang:活用interface,增加程序扩展性

场景 在paas中间件众多的场景下&#xff0c;做一款用于巡检多个paas组件健康状态的工具。工具的编写需要具备一定的扩展性&#xff0c;便于后续新增某个paas组件巡检的功能。 管理多个paas组件&#xff0c;需要方便扩展新增。 思路 使用面向对象编程思想&#xff0c;首先对…...

SQL语句练习每日5题(四)

题目1——查找GPA最高值 想要知道复旦大学学生gpa最高值是多少&#xff0c;请你取出相应数据 题解&#xff1a; 1、使用MAX select MAX(gpa) FROM user_profile WHERE university 复旦大学 2、使用降序排序组合limit select gpa FROM user_profile WHERE university 复…...

Java排序算法汇总篇,八种排序算法

排序算法汇总: Java排序算法(一)&#xff1a;冒泡排序 Java排序算法(二)&#xff1a;选择排序 Java排序算法(三)&#xff1a;插入排序 Java排序算法(四)&#xff1a;快速排序 Java排序算法(五)&#xff1a;归并排序 Java排序算法(六)&#xff1a;希尔排序 Java排序算法(…...

R语言探索与分析20-北京市气温预测分析

一、序言 近年来&#xff0c;人类大量燃烧煤炭、天然气等含碳燃料导致温室气 体过度排放&#xff0c;大量温室气体强烈吸收地面辐射中的红外线&#xff0c;造 成温室效应不断累积&#xff0c;使得地球温度上升&#xff0c;造成全球气候变暖。气象温度的预测一直以来都是天气预…...

2024年安全现状报告

2024 年安全现状报告有些矛盾。尽管安全专业人员的道路困难重重&#xff0c;比如说严格的合规要求、不断升级的地缘政治紧张局势和更复杂的威胁环境&#xff0c;但整个行业还是在取得进展。 许多组织表示&#xff0c;与前几年相比&#xff0c;网络安全变得更容易管理。组织之间…...

OV通配符ssl证书是什么

通配符https证书的产品比较丰富&#xff0c;为了方便区分&#xff0c;可以按照验证方式将通配符https证书分为DV基础型通配符https证书和OV企业型通配符https证书两种。其中OV通配符https证书申请条件高&#xff0c;审核也比较严格&#xff0c;相比于DV基础型通配符https证书&a…...

Selenium三种等待方式的使用!

UI自动化测试&#xff0c;大多都是通过定位页面元素来模拟实际的生产场景操作。但在编写自动化测试脚本中&#xff0c;经常出现元素定位不到的情况&#xff0c;究其原因&#xff0c;无非两种情况&#xff1a;1、有frame&#xff1b;2、没有设置等待。 因为代码运行速度和浏览器…...

websockets怎么工作的呢?

WebSockets是一种在单个TCP连接上进行全双工通信的协议&#xff0c;使得客户端和服务器之间的数据交换变得更加简单&#xff0c;并允许服务端主动向客户端推送数据。下面是WebSockets的工作原理&#xff1a; 1. **握手阶段**&#xff1a; - 客户端发起一个HTTP请求到服务器&…...

3步告别卡顿:用鸣潮工具箱实现流畅游戏体验

3步告别卡顿&#xff1a;用鸣潮工具箱实现流畅游戏体验 【免费下载链接】WaveTools &#x1f9f0;鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools 你的游戏还在卡顿吗&#xff1f;试试这个免费解决方案 你是否曾经在《鸣潮》的激烈战斗中遭遇突然的…...

解密Qwen2VLImageProcessor:从RGB转换到时空补丁的完整预处理流水线

解密Qwen2VLImageProcessor&#xff1a;从RGB转换到时空补丁的完整预处理流水线 在计算机视觉与多模态模型融合的前沿领域&#xff0c;图像预处理流水线的设计质量直接影响着模型性能的天花板。Qwen2VLImageProcessor作为专为Qwen2-VL模型设计的预处理引擎&#xff0c;其独特之…...

nli-distilroberta-base在内容聚合平台中的落地:多源新闻事件一致性交叉验证

nli-distilroberta-base在内容聚合平台中的落地&#xff1a;多源新闻事件一致性交叉验证 1. 项目背景与价值 在信息爆炸的时代&#xff0c;内容聚合平台每天需要处理来自不同来源的海量新闻资讯。如何快速验证同一事件在不同报道中的一致性&#xff0c;成为平台内容质量管控的…...

ROS路径规划实战:用move_base让机器狗在Gazebo中自主导航(避坑指南)

ROS路径规划实战&#xff1a;用move_base让机器狗在Gazebo中自主导航&#xff08;避坑指南&#xff09; 当机器狗在仿真环境中流畅地绕过障碍物走向目标点时&#xff0c;那种成就感就像看着自家宠物第一次成功接住飞盘。作为ROS开发者&#xff0c;掌握move_base实现自主导航的能…...

HackBGRT:UEFI启动界面定制的极简实施指南

HackBGRT&#xff1a;UEFI启动界面定制的极简实施指南 【免费下载链接】HackBGRT Windows boot logo changer for UEFI systems 项目地址: https://gitcode.com/gh_mirrors/ha/HackBGRT HackBGRT是一款专注于UEFI系统的开源工具&#xff0c;为用户提供安全高效的启动画面…...

大语言模型,视觉模型,全模态模型,语音模型和向量模型的区别和使用

1. 大语言模型&#xff08;Large Language Model, LLM&#xff09;定义&#xff1a;以文本为输入&#xff0c;生成文本的模型。特点&#xff1a;输入输出都是自然语言&#xff08;或包含少量结构化的 prompt&#xff09;。擅长对话、写作、推理、代码生成等任务。在 LangChain …...

# 智能合约安全实战:重入攻击原理与防御机制详解(Solidity + Foundry)在以太坊生态中,**智能合约的安全性

智能合约安全实战&#xff1a;重入攻击原理与防御机制详解&#xff08;Solidity Foundry&#xff09; 在以太坊生态中&#xff0c;智能合约的安全性直接决定项目的生命线。近年来频繁爆发的漏洞事件表明&#xff0c;即使是看似简单的逻辑也可能埋藏致命隐患。其中&#xff0c;…...

Python数据可视化实战:用matplotlib绘制专业级折线图(附完整代码)

Python数据可视化实战&#xff1a;用matplotlib绘制专业级折线图&#xff08;附完整代码&#xff09; 数据可视化是现代数据分析不可或缺的一环&#xff0c;而折线图作为最基础也最常用的图表类型之一&#xff0c;能够直观展示数据随时间或有序类别的变化趋势。对于Python开发者…...

MusePublic Art Studio参数详解:随机种子锁定与艺术风格复现方法

MusePublic Art Studio参数详解&#xff1a;随机种子锁定与艺术风格复现方法 1. 理解随机种子&#xff1a;艺术创作的"基因密码" 在AI图像生成领域&#xff0c;随机种子就像是每幅作品的DNA序列。它决定了生成过程中的随机性因素&#xff0c;是控制输出结果一致性的…...

Typora风格技术文档创作:集成SenseVoice-Small实现语音速记

Typora风格技术文档创作&#xff1a;集成SenseVoice-Small实现语音速记 每次在Typora里敲代码、写文档&#xff0c;是不是都有过这样的瞬间&#xff1f;脑子里灵光一闪&#xff0c;一段绝妙的思路或者一个关键的描述&#xff0c;手速却跟不上。等你好不容易敲完几个字&#xf…...