File tree 1 file changed +16
-14
lines changed
solution/2400-2499/2444.Count Subarrays With Fixed Bounds
1 file changed +16
-14
lines changed Original file line number Diff line number Diff line change 1
1
impl Solution {
2
2
pub fn count_subarrays ( nums : Vec < i32 > , min_k : i32 , max_k : i32 ) -> i64 {
3
- let mut res = 0 ;
4
- let mut min_index = -1 ;
5
- let mut max_index = -1 ;
6
- let mut k = -1 ;
7
- for i in 0 ..nums. len ( ) {
8
- let num = nums[ i] ;
3
+ let mut ans: i64 = 0 ;
4
+ let mut j1: i64 = -1 ;
5
+ let mut j2: i64 = -1 ;
6
+ let mut k: i64 = -1 ;
7
+ for ( i, & v) in nums. iter ( ) . enumerate ( ) {
9
8
let i = i as i64 ;
10
- if num == min_k {
11
- min_index = i;
9
+ if v < min_k || v > max_k {
10
+ k = i;
12
11
}
13
- if num == max_k {
14
- max_index = i;
12
+ if v == min_k {
13
+ j1 = i;
15
14
}
16
- if num < min_k || num > max_k {
17
- k = i;
15
+ if v == max_k {
16
+ j2 = i;
17
+ }
18
+ let m = j1. min ( j2) ;
19
+ if m > k {
20
+ ans += m - k;
18
21
}
19
- res += ( 0 ) . max ( min_index. min ( max_index) - k) ;
20
22
}
21
- res
23
+ ans
22
24
}
23
25
}
You can’t perform that action at this time.
0 commit comments