202109-2 非零段划分
#include<iostream>
#include<algorithm>
using namespace std;
int n;
const int N = 1e6;
int nums[N], df[N];
int pre = 0, maxS = 0;
int main()
{
cin >> n;
for (int i = 1; i <= n; i++) cin >> nums[i];
n = unique(nums, nums + n + 2) - nums - 1;
for (int i = 0; i < n; i++) {
if (nums[i] > nums[i + 1] && nums[i] > nums[i - 1]) df[nums[i]]++;
else if (nums[i] < nums[i + 1] && nums[i] < nums[i - 1]) df[nums[i]]--;
}
for (int i = 10000; i >= 0; i--) {
pre += df[i];
maxS = max(pre, maxS);
}
cout << maxS;
return 0;
}
参考 https://blog.csdn.net/tigerisland45/article/details/120598581