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

精仿源码社区网站源码谷歌seo工具

精仿源码社区网站源码,谷歌seo工具,如何做商业网站分析,淘大象关键词排名查询2962. 统计最大元素出现至少 K 次的子数组 给你一个整数数组 nums 和一个 正整数 k 。 请你统计有多少满足 「 nums 中的 最大 元素」至少出现 k 次的子数组,并返回满足这一条件的子数组的数目。 子数组是数组中的一个连续元素序列。 示例 1: 输入&#…

2962. 统计最大元素出现至少 K 次的子数组

给你一个整数数组 nums 和一个 正整数 k 。
请你统计有多少满足 「 nums 中的 最大 元素」至少出现 k 次的子数组,并返回满足这一条件的子数组的数目。
子数组是数组中的一个连续元素序列。
示例 1:
输入:nums = [1,3,2,3,3], k = 2
输出:6
解释:包含元素 3 至少 2 次的子数组为:[1,3,2,3]、[1,3,2,3,3]、[3,2,3]、[3,2,3,3]、[2,3,3] 和 [3,3] 。
示例 2:
输入:nums = [1,4,2,1], k = 3
输出:0
解释:没有子数组包含元素 4 至少 3 次。
提示:
1 <= nums.length <= 105
1 <= nums[i] <= 106
1 <= k <= 105

题解

如标题所示,本题采用滑动数组进行解题

题目要求所有满足条件的子数组
那么我们自然需要考虑所有的子数组
我们该如何做到呢

首先看看如何枚举所有的子数组
我们可以用一个循环枚举出所有子数组可能的开头,然后内层再写一个循环枚举所有可能的结尾,这样就枚举了所有的子数组

那么滑动数组又该如何考虑到所有的子数组呢?


类似的,我们可以写一个循环枚举出所有子数组的结尾 i
然后使用指针 l=0 作为子数组的开头,那么 l 与 i 就是滑动窗口的区间
我们使用变量 count 记录滑动窗口中的最大值的个数,res=0 记录返回值
此时 i 作为窗口的右边不断右移
当 count == k 时,此时的滑动窗口满足条件,我们找到了一个答案

但是问题是,接下来我们要如移动滑动窗口呢?
将 i 向右移,还是将 l 向右移

注意到,我们第一层循环是枚举所有子数组的结尾
只要对于每一种结尾,我们都找到所有可能的子数组就能解决问题
但是我们显然不能枚举开头 l ,否则与枚举就一样了,时间复杂高
当 count == k 时,我们可以将 窗口左边 l 右移,直到 count != k
那么对于此时的 i ,此时所有以 l 的左边为开头的子数组 [ l, i ] 都是满足条件的
也就是我们找到了以 i 结尾的所有满足条件的子数组
所以滑动窗口 [ l, i ] 的含义就是以 i 结尾的,第一个不满足条件的子数组
res+=l ,枚举下一个 i
如果 count != k,那么 l 的位置不变,res+=l
如果count==k,那么接着移动 l 直到滑动窗口不满足条件

总计滑动窗口划过一次数组,时间复杂度为 O(n)


代码如下↓

long long countSubarrays(int* nums, int numsSize, int k) {int l=0;int max=0;long res=0;int count=0;for(int i=0;i<numsSize;i++){if(nums[i]>max){max=nums[i];}}for(int i=0;i<numsSize;i++){if(nums[i]==max){count++;}while(count==k)//怎么说呢,每次i就是子数组的右端点,每次当count的个数为k的时候,就将l右移,直到count<k,那么l之前的所有字符都可以作为子数组的左端点,也就是说以i为右端点的满足条件的子数组有left个。然后i继续右移,直到count再次==k,然后重复以上过程,left左边的所有字符同样满足条件,count的个数肯定>=k,所以res+=left{if(nums[l]==max){count--;}l++;}res+=l;printf("%d\n",l);}return res;
}

文章转载自:

http://0Fn6eYHx.ympcj.cn
http://JY9Trm5c.ympcj.cn
http://qDVXsFMG.ympcj.cn
http://MoA6iwEO.ympcj.cn
http://oDErF4cD.ympcj.cn
http://oWBQAye4.ympcj.cn
http://7XkkkqWS.ympcj.cn
http://WPyN2kZz.ympcj.cn
http://Xs5bFNa8.ympcj.cn
http://rtKk5R7W.ympcj.cn
http://sSReP8YJ.ympcj.cn
http://d3Q7uohF.ympcj.cn
http://IxWwhNit.ympcj.cn
http://9S6FHngD.ympcj.cn
http://0kAs89MQ.ympcj.cn
http://t1U3D4fe.ympcj.cn
http://D6NeyHnA.ympcj.cn
http://Kx6ntEv6.ympcj.cn
http://SUp6OhHl.ympcj.cn
http://IsKp5li9.ympcj.cn
http://4SSrJNEn.ympcj.cn
http://D9iQqGgq.ympcj.cn
http://Ric1mvT4.ympcj.cn
http://eOOpYwix.ympcj.cn
http://ZKHr64iR.ympcj.cn
http://79c3lQ1f.ympcj.cn
http://DKKACAzk.ympcj.cn
http://FTgcpkNJ.ympcj.cn
http://LFF6wfj6.ympcj.cn
http://8R5fT91c.ympcj.cn
http://www.dtcms.com/wzjs/644014.html

相关文章:

  • 怎么做网站广告位android最新版本
  • 网站建设中 模板下载成都 网站设计
  • 怎么做兼职网站吗做外贸常用那几个网站
  • 刷赞抖音推广网站个人简历模板下载 免费完整版
  • 餐饮企业网站模板十大教育培训机构排名
  • 自己做的网站慢是什么原因小程序开发文档微信小程序
  • 东莞企业网站建设方案信用中国 网站截图怎么做
  • 保险公司官方网站济南网站seo
  • 菏泽网站建设菏泽为wordpress添加虚拟用户权限
  • 深圳华南城网站建设南京响应式网站制作
  • 做游戏类型的网站的好处建筑网站免费
  • 网站建设好找工作温州市永嘉上塘建设局网站
  • 人才招聘网站模板生活信息网站如何推广
  • 重庆哪里可以做网站的湖南自考网站建设与管理
  • 实训网站建设的心得总结动漫制作专业需要学什么
  • 网站建设搭配html5网站是用什么软件做的吗
  • 网站构建的一般流程是什么网站开发实例教程实训心得
  • 课程网站建设的基本原理做网站备案需要什么
  • 网站入口设计wordpress 菜单无法保存
  • 怎么建设网站法库综合网站建设方案
  • 做悬赏的网站建设信用卡积分商城网站
  • 网站建设与管理技术发展网站内容编辑器
  • 怎么做游戏测评视频网站广东微信网站制作报价表
  • 外贸网站推广方案百度域名是什么意思
  • 学校网站建设招聘买卖链接网
  • 网站大数据怎么做怎样在手机做自己的网站
  • 仿站吧摄影工作室logo设计
  • 昆明淘宝网站建设怎么做好网站开发 设计
  • 做教育app的网站有哪些软件开发专业词汇
  • 网站建设pc指什么南京seo排名外包