python【力扣LeetCode算法题库】1248- 统计「优美子数组」
- 统计「优美子数组」
给你一个整数数组 nums 和一个整数 k。
如果某个 连续 子数组中恰好有 k 个奇数数字,我们就认为这个子数组是「优美子数组」。
请返回这个数组中「优美子数组」的数目。
示例 1:
输入:nums = [1,1,2,1,1], k = 3
输出:2
解释:包含 3 个奇数的子数组是 [1,1,2,1] 和 [1,2,1,1] 。
示例 2:
输入:nums = [2,4,6], k = 1
输出:0
解释:数列中不包含任何奇数,所以不存在优美子数组。
示例 3:
输入:nums = [2,2,2,1,2,2,1,2,2,2], k = 2
输出:16
cnt记录当前查到奇数的个数
idx记录奇数个数对应下标,且其值和索引的意义与通常相反:索引表示个数,值表示个数对应的索引,即第i个奇数对应的下标为idx[i];特别地,idx[0]对应第0个奇数下标初始化为-1
对每个数值依次判断:
如果是奇数,cnt+1
如果当前累计奇数的个数得到更新(意味着大于已有idx的长度),更新奇数个数对应的索引
如果当前累计奇数的个数cnt>=k,则意味着存在以当前元素结尾的连续子数组满足k个奇数条件。子数组的终点是当前值,起点的范围是第cnt-k个奇数对应索引到下一个奇数(第cnt-k+1个奇数)对应索引间的长度,相应更新结果增加的个数。
python【力扣LeetCode算法题库】1248- 统计「优美子数组」相关推荐
- python【力扣LeetCode算法题库】4- 寻找两个有序数组的中位数
寻找两个有序数组的中位数 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n)). 你可以假设 n ...
- 1248. 统计「优美子数组」
链接:https://leetcode-cn.com/problems/count-number-of-nice-subarrays/ 题解:https://leetcode-cn.com/probl ...
- python【力扣LeetCode算法题库】220-存在重复元素 III
给定一个整数数组,判断数组中是否有两个不同的索引 i 和 j,使得 nums [i] 和 nums [j] 的差的绝对值最大为 t,并且 i 和 j 之间的差的绝对值最大为 ķ. 示例 1: 输入: ...
- python【力扣LeetCode算法题库】219 -存在重复元素 II
给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k. 示例 1: 输入: nums = ...
- python【力扣LeetCode算法题库】217-存在重复元素
给定一个整数数组,判断是否存在重复元素. 如果任何值在数组中出现至少两次,函数返回 true.如果数组中每个元素都不相同,则返回 false. 示例 1: 输入: [1,2,3,1] 输出: true ...
- python【力扣LeetCode算法题库】257- 二叉树的所有路径
给定一个二叉树,返回所有从根节点到叶子节点的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 输入: 1 / 2 3 5 输出: ["1->2->5", &quo ...
- python【力扣LeetCode算法题库】10-正则表达式匹配
给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配. '.' 匹配任意单个字符 '*' 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 ...
- python【力扣LeetCode算法题库】136-只出现一次的数字
只出现一次的数字 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 说明: 你的算法应该具有线性时间复杂度. 你可以不使用额外空间来实现吗? 示例 ...
- python【力扣LeetCode算法题库】面试题 01.07- 旋转矩阵
面试题 01.07. 旋转矩阵 给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节.请你设计一种算法,将图像旋转 90 度. 不占用额外内存空间能否做到? 示例 1: 给定 mat ...
最新文章
- 节省50%部署时间的5大KS8服务
- html js 控制span值,根据显示/隐藏span标签/ Javascript组设置span文本?
- oracle 10g RAC app VIP ,ONS,GSD,ASM,OCR,VOTE名称及代表的涵义。
- (Deep learning)深度卷积网络实战——第一部分
- 开源管理软件 OpenEMR 被曝多个漏洞,可被用于攻陷医疗基础设施
- windos读写ext3工具_Windows读写Ext3文件系统
- URL和URI的区别及理解
- Microsoft Office 2010组件介绍
- python中encode函数_Python中encode()方法有哪些功能?
- 打造智能化的园区管理系统
- matlab外推法确定搜索区间的程序,《机械优化设计》复习题
- android手机没电怎么恢复电量,Android手机电池电量剩下通知
- random.seed()的作用(python)
- 安装程序无法自动安装 Virtual Machine Communication Interface Sockets (VSock) 驱动程序,必须手动安装此驱动程序
- html编辑器贴吧,推荐HTML编辑器
- Java基础巩固Day2作业
- 史上最全Python学习笔记(基于《Python学习手册(第4版)》)——Part3 语句和语法
- vars()函数详解
- Hash MSDN MD4 MD5 SHA1 CRC 详细解释
- 多媒体信息发布系统的独家优势