1. 统计「优美子数组」
    给你一个整数数组 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- 统计「优美子数组」相关推荐

  1. python【力扣LeetCode算法题库】4- 寻找两个有序数组的中位数

    寻找两个有序数组的中位数 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n)). 你可以假设 n ...

  2. 1248. 统计「优美子数组」

    链接:https://leetcode-cn.com/problems/count-number-of-nice-subarrays/ 题解:https://leetcode-cn.com/probl ...

  3. python【力扣LeetCode算法题库】220-存在重复元素 III

    给定一个整数数组,判断数组中是否有两个不同的索引 i 和 j,使得 nums [i] 和 nums [j] 的差的绝对值最大为 t,并且 i 和 j 之间的差的绝对值最大为 ķ. 示例 1: 输入: ...

  4. python【力扣LeetCode算法题库】219 -存在重复元素 II

    给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k. 示例 1: 输入: nums = ...

  5. python【力扣LeetCode算法题库】217-存在重复元素

    给定一个整数数组,判断是否存在重复元素. 如果任何值在数组中出现至少两次,函数返回 true.如果数组中每个元素都不相同,则返回 false. 示例 1: 输入: [1,2,3,1] 输出: true ...

  6. python【力扣LeetCode算法题库】257- 二叉树的所有路径

    给定一个二叉树,返回所有从根节点到叶子节点的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 输入: 1 / 2 3 5 输出: ["1->2->5", &quo ...

  7. python【力扣LeetCode算法题库】10-正则表达式匹配

    给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配. '.' 匹配任意单个字符 '*' 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 ...

  8. python【力扣LeetCode算法题库】136-只出现一次的数字

    只出现一次的数字 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 说明: 你的算法应该具有线性时间复杂度. 你可以不使用额外空间来实现吗? 示例 ...

  9. python【力扣LeetCode算法题库】面试题 01.07- 旋转矩阵

    面试题 01.07. 旋转矩阵 给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节.请你设计一种算法,将图像旋转 90 度. 不占用额外内存空间能否做到? 示例 1: 给定 mat ...

最新文章

  1. 节省50%部署时间的5大KS8服务
  2. html js 控制span值,根据显示/隐藏span标签/ Javascript组设置span文本?
  3. oracle 10g RAC app VIP ,ONS,GSD,ASM,OCR,VOTE名称及代表的涵义。
  4. (Deep learning)深度卷积网络实战——第一部分
  5. 开源管理软件 OpenEMR 被曝多个漏洞,可被用于攻陷医疗基础设施
  6. windos读写ext3工具_Windows读写Ext3文件系统
  7. URL和URI的区别及理解
  8. Microsoft Office 2010组件介绍
  9. python中encode函数_Python中encode()方法有哪些功能?
  10. 打造智能化的园区管理系统
  11. matlab外推法确定搜索区间的程序,《机械优化设计》复习题
  12. android手机没电怎么恢复电量,Android手机电池电量剩下通知
  13. random.seed()的作用(python)
  14. 安装程序无法自动安装 Virtual Machine Communication Interface Sockets (VSock) 驱动程序,必须手动安装此驱动程序
  15. html编辑器贴吧,推荐HTML编辑器
  16. Java基础巩固Day2作业
  17. 史上最全Python学习笔记(基于《Python学习手册(第4版)》)——Part3 语句和语法
  18. vars()函数详解
  19. Hash MSDN MD4 MD5 SHA1 CRC 详细解释
  20. 多媒体信息发布系统的独家优势

热门文章

  1. android 常驻进程
  2. Github 项目推荐 | 用手势输入表情符号 —— Emojinator
  3. 找到一个或多个多重定义的符号
  4. cuda win10安装
  5. 一般判五年几年能出来_判刑五年能减刑多少年
  6. 王者荣耀服务器维护1月9号,王者荣耀1月9日维护到几点 王者荣耀1月9日几点能上游戏?...
  7. spingboot使用redis连接池报错
  8. Linux安装telnet
  9. mini2440 uboot使用
  10. 【转】关于Apache与Nginx的优势比较