力扣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;
      }
  };
相关推荐
追随者永远是胜利者20 分钟前
(LeetCode-Hot100)62. 不同路径
java·算法·leetcode·职场和发展·go
追随者永远是胜利者22 分钟前
(LeetCode-Hot100)56. 合并区间
java·算法·leetcode·职场和发展·go
wu_asia28 分钟前
每日一练伍
算法
追随者永远是胜利者31 分钟前
(LeetCode-Hot100)55. 跳跃游戏
java·算法·leetcode·游戏·go
近津薪荼1 小时前
优选算法——前缀和(7):连续数组
算法
ArturiaZ1 小时前
【day29】
数据结构·c++·算法
MoonOutCloudBack1 小时前
VeRL 框架下 RL 微调 DeepSeek-7B,比较 PPO / GRPO 脚本的参数差异
人工智能·深度学习·算法·语言模型·自然语言处理
_F_y2 小时前
二叉树中的深搜
算法
锅包一切2 小时前
PART17 一维动态规划
c++·学习·算法·leetcode·动态规划·力扣·刷题
Polaris北2 小时前
第二十六天打卡
c++·算法·动态规划