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

灵神算法题单——滑动窗口(求子数组个数)

2799. 统计完全子数组的数目

class Solution {
public:int countCompleteSubarrays(vector<int>& nums) {int ant=0;int n=nums.size();unordered_map<int,int> m,mchild;for(int i=0;i<n;i++){m[nums[i]]++;}int mapnum=m.size();for(int i=0,j=0;i<n;i++){mchild[nums[i]]++;while(mchild.size()==mapnum){if(--mchild[nums[j]]==0)mchild.erase(nums[j]);j++;}ant+=j;}return ant;}
};

713. 乘积小于 K 的子数组

class Solution {
public:int numSubarrayProductLessThanK(vector<int>& nums, int k) {int ant=0;int multi=1;int n=nums.size();for(int i=0,j=0;i<n;i++){multi*=nums[i];while(multi>=k&&j<=i){multi/=nums[j];j++;}ant+=i-j+1;}return ant;}
};

1358. 包含所有三种字符的子字符串数目

class Solution {
public:int numberOfSubstrings(string s) {int a[5];int ant=0;int n=s.size();for(int i=0,j=0;i<n;i++){a[s[i]-'a']++;while(a[0]&&a[1]&&a[2]){a[s[j]-'a']--;j++;}ant+=j;}return ant;}
};

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

     

class Solution {
public:long long countSubarrays(vector<int>& nums, int k) {long long ant=0;int s=0;int n=nums.size();int ma=ranges::max(nums);for(int i=0,j=0;i<n;i++){if(nums[i]==ma)s++;while(s==k){if(nums[j]==ma)s--;j++;}ant+=j;}return ant;}
};

2302.统计得分小于K 的子数组数目

class Solution {
public:long long countSubarrays(vector<int>& nums, long long k) {long long ant=0;int n=nums.size();long long t=0;for(int i=0,j=0;i<n;i++){t+=nums[i];while(t*(i-j+1)>=k){t-=nums[j];j++;}ant+=i-j+1;}return ant;}
};

2537. 统计好子数组的数目

class Solution {
public:long long countGood(vector<int>& nums, int k) {long long ant=0;unordered_map<int,int> m;int n=nums.size();long long t=0;for(int i=0,j=0;i<n;i++){t+=m[nums[i]]++;while(t>=k){t-=--m[nums[j]];j++;}ant+=j;}return ant;}
};

 2763.不间断子数组

class Solution {
public:long long continuousSubarrays(vector<int>& nums) {long long ant=0;int n=nums.size();multiset<int> s;for(int i=0,j=0;i<n;i++){s.insert(nums[i]);while(*s.rbegin()-*s.begin()>2){s.erase(s.find(nums[j++]));}ant+=i-j+1;}return ant;}
};

http://www.mrgr.cn/news/12315.html

相关文章:

  • 人工智能以纳米级精度检测癌症和病毒感染
  • 使用rqt_console和roslaunch
  • 一键获取店铺商品:阿里巴巴API返回值详解
  • Redis的持久化
  • 【从问题中去学习k8s】k8s中的常见面试题(夯实理论基础)(二十)
  • 尚硅谷Java面试题第四季-Java基本功
  • linux命令之mkdir
  • WordNet介绍——一个英语词汇数据库
  • Vue3、Vite、Pinia基础学习
  • 【论文阅读】基于生成对抗网络的模型窃取方法的研究(2021)
  • docker基础到进阶
  • 【html+css 绚丽Loading】000021 万象轮回珠
  • EmguCV学习笔记 VB.Net 7.1 角点检测
  • 工厂模式与策略模式:理解与应用
  • nginx-rewrite、if、浏览器分离、防盗链
  • Spring Boot与Docker容器化部署实践
  • 前端Html5/Css3—div盒子模型
  • NumPy介绍
  • pdf转换jpg如何操作?5个批量转换jpg方法!
  • 在Vue2中使用WebSocket