力扣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;
      }
  };
相关推荐
深邃-6 分钟前
字符函数和字符串函数(1)
c语言·开发语言·数据结构·c++·算法·html5
我真不是小鱼7 分钟前
cpp刷题打卡记录24——路径总和 & 路径总和II
数据结构·c++·算法·leetcode
菜鸟小九13 分钟前
JVM垃圾回收
java·jvm·算法
nianniannnn14 分钟前
力扣 347. 前 K 个高频元素
c++·算法·leetcode
x_xbx16 分钟前
LeetCode:217. 存在重复元素
数据结构·leetcode·哈希算法
漫随流水17 分钟前
c++编程:求阶乘和
数据结构·c++·算法
Frostnova丶22 分钟前
LeetCode 2839. 判断通过操作能否让字符串相等 I
算法·leetcode
会编程的土豆24 分钟前
【leetcode hot 100】二叉树3
算法·深度优先·图论
ofoxcoding37 分钟前
GPT-5.4 API 完全指南:性能实测、成本测算与接入方案(2026)
人工智能·gpt·算法·ai
码农的神经元37 分钟前
基于改进 VMD 与自适应小波的水声信号去噪算法实现与分析
算法