Skip to content

Commit 3dbe044

Browse files
authored
Update Solution.c
1 parent 7a16f7e commit 3dbe044

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 numberDiff line numberDiff line change
@@ -1,23 +1,12 @@
1-
#define max(a, b) (((a) > (b)) ? (a) : (b))
2-
#define min(a, b) (((a) < (b)) ? (a) : (b))
3-
41
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);
2110
}
22-
return res;
23-
}
11+
return ans;
12+
}

0 commit comments

Comments
 (0)