Skip to main content
Back to problems
#2444
Hard Algorithms

Count subarrays with fixed bounds

Array Queue Sliding Window Monotonic Queue
69.2% acceptance
Feb 25, 2026
3760
97
You are given an integer array nums and two integers minK and maxK. A fixed-bound subarray of nums is a subarray that satisfies the following con ditions: * The minimum value in the subarray is equal to minK. The maximum value in the subarray is equal to maxK. Return the number of fixed-bound subarrays. A subarray is a contiguous part of an array.

Solution

Rust
Time O(n)
Space O(1)
LeetCode
solution.rs
impl Solution {
  pub fn count_subarrays(nums: Vec<i32>, min_k: i32, max_k: i32) -> i64 {
    let mut ans = 0i64;
    let mut last_bad = -1i64;
    let mut last_min = -1i64;
    let mut last_max = -1i64;
    for (i, &v) in nums.iter().enumerate() {
      let i = i as i64;
      if v < min_k || v > max_k {
        last_bad = i;
      }
      if v == min_k { last_min = i; }
      if v == max_k { last_max = i; }
      let contrib = last_min.min(last_max) - last_bad;
      if contrib > 0 { ans += contrib; }
    }
    ans
  }
}