Untitled

 avatar
unknown
plain_text
a month ago
746 B
1
Indexable
// Approach-2 (Optimal O(n)) - Sliding Window

class Solution {
    public long countSubarrays(int[] nums, int minK, int maxK) {
        long ans = 0;
        
        int minPosition = -1;
        int maxPosition = -1;
        int leftBound = -1;
        
        for (int i = 0; i < nums.length; i++) {
            
            if (nums[i] < minK || nums[i] > maxK)
                leftBound = i;
            
            if (nums[i] == minK)
                minPosition = i;
            
            if (nums[i] == maxK)
                maxPosition = i;
            
            int count = Math.min(maxPosition, minPosition) - leftBound;
            
            ans += (count <= 0) ? 0 : count;
        }
        
        return ans;
    }
}
Editor is loading...
Leave a Comment