力扣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;
      }
  };
相关推荐
DC...14 小时前
【力控】混合位置 / 力控制
算法·机器人·力控
Rabitebla14 小时前
归并排序(MergeSort)完全指南 —— 从原理到非递归实现
c语言·数据结构·c++·算法·排序算法
WBluuue14 小时前
Codeforces Educational 188(ABCDEF)
c++·算法
AI成长日志14 小时前
【笔面试算法学习专栏】双指针专题:简单难度三题精讲(167.两数之和II、283.移动零、344.反转字符串)
学习·算法·面试
Book思议-14 小时前
【数据结构】数组与特殊矩阵
数据结构·算法·矩阵
酉鬼女又兒14 小时前
零基础快速入门前端DOM 节点操作核心知识点及蓝桥杯 Web 应用开发考点解析(可用于备赛蓝桥杯Web应用开发)
开发语言·前端·javascript·职场和发展·蓝桥杯
不吃蘑菇!14 小时前
LeetCode Hot 100-1(两数之和)
java·数据结构·算法·leetcode·哈希表
paeamecium14 小时前
【PAT甲级真题】- Linked List Sorting (25)
数据结构·c++·算法·pat考试·pat
967715 小时前
C++ Lambda 表达式 匿名函数 sort
数据结构·c++·算法
codeの诱惑15 小时前
推荐算法(二):核心概念——余弦定理 & 余弦相似度
算法·机器学习·推荐算法