双指针,哪个大就往哪边挪动。
class Solution {
public:
int maximumScore(vector<int>& nums, int k) {
int max_sum = nums[k];
int current = nums[k];
int l=k, r=k;
while (l > 0 || r < nums.size() - 1) {
int next_l = l == 0? INT_MIN : nums[l-1];
int next_r = r == nums.size()-1? INT_MIN : nums[r+1];
if (next_r > next_l) {
current = min(next_r, current);
r ++;
}
else {
current = min(next_l, current);
l--;
}
max_sum = max(max_sum, current * (r - l + 1));
}
return max_sum;
}
};