File tree Expand file tree Collapse file tree 5 files changed +213
-0
lines changed
solution/2400-2499/2444.Count Subarrays With Fixed Bounds Expand file tree Collapse file tree 5 files changed +213
-0
lines changed Original file line number Diff line number Diff line change @@ -164,10 +164,84 @@ func max(a, b int) int {
164
164
}
165
165
```
166
166
167
+ ### ** C**
168
+
169
+ ``` c
170
+ #define max (a,b ) (((a) > (b)) ? (a) : (b))
171
+ #define min(a,b) (((a) < (b)) ? (a) : (b))
172
+
173
+ long long countSubarrays (int * nums, int numsSize, int minK, int maxK) {
174
+ long long res = 0;
175
+ int minIndex = -1;
176
+ int maxIndex = -1;
177
+ int k = -1;
178
+ for (int i = 0; i < numsSize; i++) {
179
+ int num = nums[ i] ;
180
+ if (num == minK) {
181
+ minIndex = i;
182
+ }
183
+ if (num == maxK) {
184
+ maxIndex = i;
185
+ }
186
+ if (num < minK || num > maxK) {
187
+ k = i;
188
+ }
189
+ res += max(min(minIndex, maxIndex) - k, 0);
190
+ }
191
+ return res;
192
+ }
193
+ ```
194
+
167
195
### **TypeScript**
168
196
169
197
```ts
198
+ function countSubarrays(nums: number[], minK: number, maxK: number): number {
199
+ let res = 0;
200
+ let minIndex = -1;
201
+ let maxIndex = -1;
202
+ let k = -1;
203
+ nums.forEach((num, i) => {
204
+ if (num === minK) {
205
+ minIndex = i;
206
+ }
207
+ if (num === maxK) {
208
+ maxIndex = i;
209
+ }
210
+ if (num < minK || num > maxK) {
211
+ k = i;
212
+ }
213
+ res += Math.max(Math.min(minIndex, maxIndex) - k, 0);
214
+ });
215
+ return res;
216
+ }
217
+ ```
170
218
219
+ ### ** Rust**
220
+
221
+ ``` rust
222
+ impl Solution {
223
+ pub fn count_subarrays (nums : Vec <i32 >, min_k : i32 , max_k : i32 ) -> i64 {
224
+ let mut res = 0 ;
225
+ let mut min_index = - 1 ;
226
+ let mut max_index = - 1 ;
227
+ let mut k = - 1 ;
228
+ for i in 0 .. nums . len () {
229
+ let num = nums [i ];
230
+ let i = i as i64 ;
231
+ if num == min_k {
232
+ min_index = i ;
233
+ }
234
+ if num == max_k {
235
+ max_index = i ;
236
+ }
237
+ if num < min_k || num > max_k {
238
+ k = i ;
239
+ }
240
+ res += 0. max (min_index . min (max_index ) - k );
241
+ }
242
+ res
243
+ }
244
+ }
171
245
```
172
246
173
247
### ** ...**
Original file line number Diff line number Diff line change @@ -143,10 +143,84 @@ func max(a, b int) int {
143
143
}
144
144
```
145
145
146
+ ### ** C**
147
+
148
+ ``` c
149
+ #define max (a,b ) (((a) > (b)) ? (a) : (b))
150
+ #define min(a,b) (((a) < (b)) ? (a) : (b))
151
+
152
+ long long countSubarrays (int * nums, int numsSize, int minK, int maxK) {
153
+ long long res = 0;
154
+ int minIndex = -1;
155
+ int maxIndex = -1;
156
+ int k = -1;
157
+ for (int i = 0; i < numsSize; i++) {
158
+ int num = nums[ i] ;
159
+ if (num == minK) {
160
+ minIndex = i;
161
+ }
162
+ if (num == maxK) {
163
+ maxIndex = i;
164
+ }
165
+ if (num < minK || num > maxK) {
166
+ k = i;
167
+ }
168
+ res += max(min(minIndex, maxIndex) - k, 0);
169
+ }
170
+ return res;
171
+ }
172
+ ```
173
+
146
174
### **TypeScript**
147
175
148
176
```ts
177
+ function countSubarrays(nums: number[], minK: number, maxK: number): number {
178
+ let res = 0;
179
+ let minIndex = -1;
180
+ let maxIndex = -1;
181
+ let k = -1;
182
+ nums.forEach((num, i) => {
183
+ if (num === minK) {
184
+ minIndex = i;
185
+ }
186
+ if (num === maxK) {
187
+ maxIndex = i;
188
+ }
189
+ if (num < minK || num > maxK) {
190
+ k = i;
191
+ }
192
+ res += Math.max(Math.min(minIndex, maxIndex) - k, 0);
193
+ });
194
+ return res;
195
+ }
196
+ ```
149
197
198
+ ### ** Rust**
199
+
200
+ ``` rust
201
+ impl Solution {
202
+ pub fn count_subarrays (nums : Vec <i32 >, min_k : i32 , max_k : i32 ) -> i64 {
203
+ let mut res = 0 ;
204
+ let mut min_index = - 1 ;
205
+ let mut max_index = - 1 ;
206
+ let mut k = - 1 ;
207
+ for i in 0 .. nums . len () {
208
+ let num = nums [i ];
209
+ let i = i as i64 ;
210
+ if num == min_k {
211
+ min_index = i ;
212
+ }
213
+ if num == max_k {
214
+ max_index = i ;
215
+ }
216
+ if num < min_k || num > max_k {
217
+ k = i ;
218
+ }
219
+ res += 0. max (min_index . min (max_index ) - k );
220
+ }
221
+ res
222
+ }
223
+ }
150
224
```
151
225
152
226
### ** ...**
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
+ 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 );
21
+ }
22
+ return res ;
23
+ }
Original file line number Diff line number Diff line change
1
+ impl Solution {
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] ;
9
+ let i = i as i64 ;
10
+ if num == min_k {
11
+ min_index = i;
12
+ }
13
+ if num == max_k {
14
+ max_index = i;
15
+ }
16
+ if num < min_k || num > max_k {
17
+ k = i;
18
+ }
19
+ res += 0 . max ( min_index. min ( max_index) - k) ;
20
+ }
21
+ res
22
+ }
23
+ }
Original file line number Diff line number Diff line change
1
+ function countSubarrays ( nums : number [ ] , minK : number , maxK : number ) : number {
2
+ let res = 0 ;
3
+ let minIndex = - 1 ;
4
+ let maxIndex = - 1 ;
5
+ let k = - 1 ;
6
+ nums . forEach ( ( num , i ) => {
7
+ if ( num === minK ) {
8
+ minIndex = i ;
9
+ }
10
+ if ( num === maxK ) {
11
+ maxIndex = i ;
12
+ }
13
+ if ( num < minK || num > maxK ) {
14
+ k = i ;
15
+ }
16
+ res += Math . max ( Math . min ( minIndex , maxIndex ) - k , 0 ) ;
17
+ } ) ;
18
+ return res ;
19
+ }
You can’t perform that action at this time.
0 commit comments