Maximum Score of a Good Subarray LeetCode solution in Java

1
class Solution {
2
public int maximumScore(int[] nums, int k) {
3
int n = nums.length;
4
int i = k - 1, j = k + 1;
5
int min = nums[k];
6
int ans = min;
7

8
while (i >= 0 || j < n) {
9
int v1 = 0, v2 = 0;
10
int min1 = min, min2 = min;
11

12
if (i >= 0) {
13
min1 = Math.min(min, nums[i]);
14
v1 = min1 * (j - i);
15
}
16

17
if (j < n) {
18
min2 = Math.min(min, nums[j]);
19
v2 = min2 * (j - i);
20
}
21

22
if (v1 > v2) {
23
--i;
24
ans = Math.max(v1, ans);
25
min = Math.min(min1, min);
26
} else {
27
++j;
28
ans = Math.max(ans, v2);
29
min = Math.min(min, min2);
30
}
31
}
32

33
return ans;
34
}
35
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0