AcWing 3437. 打印极值点下标
原题链接
简单
作者:
王杜杜
,
2025-01-14 22:36:08
,
所有人可见
,
阅读 1
C++ 代码
#include <iostream>
#include <vector>
using std::cout;
using std::endl;
using std::cin;
using std::vector;
int main()
{
int N;
cin >> N;
vector<int> vec;
vector<int> extramum; // 极值
int tmp;
for(int i = 0; i < N; i++){
cin >> tmp;
vec.push_back(tmp);
}
if(vec[0] != vec[1])
extramum.push_back(0);
for(int i = 1; i < N - 1; i++){
if((vec[i] < vec[i-1]&& vec[i] < vec[i+1])
|| (vec[i] > vec[i-1] && vec[i] > vec[i+1]))
extramum.push_back(i);
}
if(vec[N-1] != vec[N-2])
extramum.push_back(N-1);
for(auto elem : extramum)
cout << elem << ' ';
return 0;
}