File tree 1 file changed +10
-21
lines changed
solution/2400-2499/2444.Count Subarrays With Fixed Bounds
1 file changed +10
-21
lines changed Original file line number Diff line number Diff line change 1
- #define max (a , b ) (((a) > (b)) ? (a) : (b))
2
- #define min (a , b ) (((a) < (b)) ? (a) : (b))
3
-
4
1
long long countSubarrays (int * nums , int numsSize , int minK , int maxK ) {
5
- long long res = 0 ;
6
- int minIndex = -1 ;
7
- int maxIndex = -1 ;
8
- int k = -1 ;
9
- for (int i = 0 ; i < numsSize ; i ++ ) {
10
- int num = nums [i ];
11
- if (num == minK ) {
12
- minIndex = i ;
13
- }
14
- if (num == maxK ) {
15
- maxIndex = i ;
16
- }
17
- if (num < minK || num > maxK ) {
18
- k = i ;
19
- }
20
- res += max (min (minIndex , maxIndex ) - k , 0 );
2
+ long long ans = 0 ;
3
+ int j1 = -1 , j2 = -1 , k = -1 ;
4
+ for (int i = 0 ; i < numsSize ; ++ i ) {
5
+ if (nums [i ] < minK || nums [i ] > maxK ) k = i ;
6
+ if (nums [i ] == minK ) j1 = i ;
7
+ if (nums [i ] == maxK ) j2 = i ;
8
+ int m = j1 < j2 ? j1 : j2 ;
9
+ if (m > k ) ans += (long long ) (m - k );
21
10
}
22
- return res ;
23
- }
11
+ return ans ;
12
+ }
You can’t perform that action at this time.
0 commit comments