2012.数组美丽值求和

Posted by 云起 on 2025-03-11
Estimated Reading Time 1 Minutes
Words 154 In Total
Viewed Times

2012.数组美丽值求和

思路

两次遍历

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
class Solution {
public:
int sumOfBeauties(vector<int>& nums) {
int n = nums.size();
vector<int> minidx(n);
vector<int> maxidx;
int tmpmin = 1e5 + 1;
int tmpmax = -1;
int ans = 0;
for (int i = nums.size() - 1; i >=1; i--) {
if (nums[i] < tmpmin) {
tmpmin = nums[i];
}
minidx[i] = tmpmin;
}
maxidx.push_back(nums[0]);
tmpmax=nums[0];
for (int i = 1; i <= nums.size() - 2; i++) {
if (nums[i] > tmpmax) {
tmpmax = nums[i];
}
maxidx.push_back(tmpmax);
if (nums[i] < minidx[i+1] && nums[i] > maxidx[i-1]) {
ans += 2;
}
else if (nums[i] > nums[i - 1] && nums[i] < nums[i + 1]) {
ans += 1;
}
}
return ans;
}
};

If you like this blog or find it useful for you, you are welcome to comment on it. You are also welcome to share this blog, so that more people can participate in it. If the images used in the blog infringe your copyright, please contact the author to delete them. Thank you !