2012. 数组美丽值求和
题目链接:2012. 数组美丽值求和
代码如下:
class Solution {
public:int sumOfBeauties(vector<int>& nums) {int n = nums.size();vector<int> suf_min(n);suf_min[n - 1] = nums[n - 1];for (int i = n - 2;i > 1;i--) {suf_min[i] = min(suf_min[i + 1], nums[i]);}int res = 0;int pre_max = nums[0];//前缀最大值for (int i = 1;i < n - 1;i++) {int x = nums[i];//此时pre_max表示[0,i-1]中的最大值if (pre_max < x && x < suf_min[i + 1]) {res += 2;}else if (nums[i - 1] < x && x < nums[i + 1]) {res++;}//更新后pre_max表示[0,i]中的最大值pre_max = max(pre_max, x);}return res;}
};