设置flag表示增长或者下降状态,如果在增长状态下flag标志为下降状态,则++cnt,如果在下降状态下flag标志为增长状态,则++cnt
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> vec(n);
for (int i = 0; i < n; ++i) {
cin >> vec[i];
}
if (n < 2) {
return 0;
}
int flag = vec[0] > vec[1] ? 1 : 0;
int cnt = 0;
for (int i = 1; i < n; ++i) {
if (vec[i - 1] > vec[i]) {
if (!flag) {
flag = 1;
++cnt;
}
} else {
if (flag) {
flag = 0;
++cnt;
}
}
}
cout << cnt << endl;
return 0;
}