Maximum Score of a Good Subarray LeetCode solution in Java
1class Solution {2public int maximumScore(int[] nums, int k) {3int n = nums.length;4int i = k - 1, j = k + 1;5int min = nums[k];6int ans = min;78while (i >= 0 || j < n) {9int v1 = 0, v2 = 0;10int min1 = min, min2 = min;1112if (i >= 0) {13min1 = Math.min(min, nums[i]);14v1 = min1 * (j - i);15}1617if (j < n) {18min2 = Math.min(min, nums[j]);19v2 = min2 * (j - i);20}2122if (v1 > v2) {23--i;24ans = Math.max(v1, ans);25min = Math.min(min1, min);26} else {27++j;28ans = Math.max(ans, v2);29min = Math.min(min, min2);30}31}3233return ans;34}35}