目录

力扣2444.统计定界子数组的数目

力扣2444.统计定界子数组的数目

  • 观察到不满足条件的数 可以作为天然的分割线

    • 因此在枚举右端点的过程中 预处理minK,maxK和分割线上一次出现的下标

    • res += min(min_i,max_i) - i0;

    • 但是因为可能在到下个区段时 min_i和max_i尚未更新 导致结果为负数

    • 所以要跟0再取一个max

    • res += max(min(min_i,max_i)-i0,0)

  • 方便计算

    • 初始化i0 = -1;
cpp 复制代码
  class Solution {
  public:
      long long countSubarrays(vector<int>& nums, int minK, int maxK) {
          long long res=0;
          int n = nums.size(),min_i = -1,max_i = -1,i0 = -1;
          for(int i=0;i<n;i++)
          {
              int x = nums[i];
              if(x == minK) min_i = i;
              if(x == maxK) max_i = i;
              if(x < minK || x > maxK) i0 = i;
              res += max(min(min_i,max_i)-i0,0);
          }
          return res;
      }
  };
本文是转载文章,点击查看原文
如有侵权,请联系 xyy@jishuzhan.net 删除
相关推荐
十七算法实验室5 分钟前
Matlab实现鼠群优化算法优化随机森林算法模型 (ROS-RF)(附源码)
开发语言·算法·决策树·随机森林·机器学习·支持向量机·matlab
烁3479 分钟前
每日一题(小白)字符串娱乐篇16
java·开发语言·算法·娱乐·暴力
butiehua020211 分钟前
Go语言常用算法实现
数据结构·算法·golang·排序算法
luckycoding19 分钟前
1631. 最小体力消耗路径
数据结构·算法·leetcode
.YY001.22 分钟前
数据结构第一轮复习--第七章查找(包含课程代码)
数据结构·算法
LuckyLay32 分钟前
LeetCode算法题(Go语言实现)_30
算法·leetcode·golang
对方正在长头发丿33 分钟前
P1162 填涂颜色(BFS)
数据结构·c++·算法·蓝桥杯·宽度优先
MeyrlNotFound38 分钟前
杂谈:抖音双塔召回模型:亿级内容分发的数学魔法
算法
不爱学英文的码字机器42 分钟前
隐私计算的崛起:数据安全的未来守护者
服务器·算法
菜就多练,以前是以前,现在是现在1 小时前
Codeforces Round 1000 (Div. 2)
数据结构·c++·算法