Leetcode每日一题:1248.count-number-of-nice-subarrays(统计[优美子数组])
思路:这个题用数学方法还是挺容易想通,左右指针l,r分别指向符合count==k的子数组的两个奇数端点,统计l左边的偶数(包括l)和r右边的偶数(包括r),那么res+=二者的乘积;然后将l++,r++,对下一个符合条件的子数组进行同样的操作,大致思想就是这样;
int numberOfSubarrays(vector<int> &nums, int k)
{int len = nums.size();int l = 0, r = 1;int count = 0, count_left = 0, count_right = 0;int res = 0;bool flag = true;while (true){//首先找到两个首尾端奇数,分别用l,r指向while (!(nums[l] & 1) && l < len){l++;count_left++;}count_left++; //包括这个奇数if (l == len){return res;}else{l++; //l指向奇数后一个数if (flag){r = l;count = 1;}while (r < len && count < k){if (nums[r] & 1){count++;}r++;}if (r == len){if (count == k)res += count_left;return res;}else //现在是count==k 并且nums[r]为奇数{count_right = 1;while (!(nums[r] & 1) && r < len){r++;count_right++;}//此时r指向奇数后的一个数 或者 结尾res += count_right * count_left;if (r == len)return res;else{count--;count_right = 0;count_left = 0;flag = false;}}}}return res;
}
Leetcode每日一题:1248.count-number-of-nice-subarrays(统计[优美子数组])相关推荐
- Leetcode每日一题:38.Count and Say(外观数列)
看题目着实难懂,评论老哥帮忙找答案,可以这么理解: 题目的意思是对序列前一个数进行报数,数列第一项为1,那第二项就报第一项的有1个1,输出11,然后第三项就在第二项的基础上报数,第二项是11,第三项不 ...
- 【LeetCode每日一题】1723. 完成所有工作的最短时间
[LeetCode每日一题]1723. 完成所有工作的最短时间 [1] 1723. 完成所有工作的最短时间 [2] 473. 火柴拼正方形 [1] 1723. 完成所有工作的最短时间 题目: 给你一个 ...
- LeetCode 每日一题 3. 无重复字符的最长子串
LeetCode 每日一题 3. 无重复字符的最长子串 大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博客地址为:亓官劼的博客 本文原创 ...
- leetcode每日刷题计划-简单篇day8
leetcode每日刷题计划-简单篇day8 今天是纠结要不要新买手机的一天QAQ想了想还是算了吧,等自己赚钱买,加油 Num 70 爬楼梯 Climbing Stairs class Solutio ...
- Leetcode每日一题:171.excel-sheet-column-number(Excel表列序号)
思路:就是168题的反命题,进制的方式完美解决: Leetcode每日一题:168.excel-sheet-column-title(Excel表名称) class Solution {public: ...
- leetcode每日一题--雀巢原理;抽屉算法;Quorum机制;分布式应用
leetcode每日一题 539. 最小时间差 示例 1: 输入:timePoints = ["23:59","00:00"] 输出:1 示例 2: 输入:ti ...
- LeetCode每日一题——1812. 判断国际象棋棋盘中一个格子的颜色
LeetCode每日一题系列 题目:1812. 判断国际象棋棋盘中一个格子的颜色 难度:简单 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 给你一个坐标 coordinates ...
- 【LeetCode每日一题】——109.有序链表转换二叉搜索树
文章目录 一[题目类别] 二[题目难度] 三[题目编号] 四[题目描述] 五[题目示例] 六[题目提示] 七[解题思路] 八[时间频度] 九[代码实现] 十[提交结果] 一[题目类别] 二叉树 二[题 ...
- leetcode每日一题·救生艇问题(Python)
leetcode每日一题·救生艇问题(Python) 问题描述 题目入口 题目思路 首先分析问题,一个船最多坐两人,因此我们可以把这个问题看作两两组合的问题,并且如果最重的那个人和最轻的人加起来大于l ...
最新文章
- 电容的容量随着电压的变化而变化
- NSString之Format
- CentOS 7 安装Boost 1.61
- ASP字符转换:UTF-8与GB2312互转
- windows phone (12) 小试自定义样式
- java构建xml参数_Java中使用XML创建EMAIL模板
- 一步一步分析vue之_data属性
- OpenShift 4 - 查看关键证书到期日期
- oracle常用系统变量,Oracle环境变量
- 基于SSM开发的房屋租赁系统 JAVA
- linux压缩zip下载,linux下wget下载文件到指定目录,解压zip文件,解压与压缩总结...
- Flash cs3教程-传统数字动画
- 浅议公司现场5S管理内部验收基准
- 深度学习HDR算法总结
- ryu实例---Hub
- 大数据技术如何影响企业决策?
- CC2630 7x7 更改为5X5
- 如何理性的调整「rwnd」和「cwnd」的大小
- T4 级老专家:AIOps 在腾讯的探索和实践
- 我画了近百张图来理解红黑树
热门文章
- hdu 1802 Black and white painting(置换群)
- node.js中使用https请求报CERT_UNTRUSTED的问题解决
- Win8 64位安装Oracle 11g时错
- 【转】小屁孩, 懂个啥
- sring-list-del-string-int:解析左右编码器的,和#号
- 为什么用Ghost备份后会有两个文件?
- 常用数据挖掘算法举例(下)
- JZOJ 1036. 【SCOI2009】迷路
- iOS-关于一些手势冲突问题(scrollView 嵌套 tableView)
- 20 ide配置快捷键补全提示 win