题解 | #打印极值点下标#
打印极值点下标
https://www.nowcoder.com/practice/7fd72f8ac7964ba3b8baa8735246e1f1
#include <iostream>
using namespace std;
const int N=80;
int main() {
int n;
int a[N];
while (cin >>n) {
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int i=0;i<n;i++){
if((i==0 && a[i]!=a[i+1])|| //第一个是极值,不等于下一个值即可
(i==n-1 && a[i]!=a[i-1])|| //最后一个是极值,不等于上一个值即可
((i>0 && i<n-1) && (a[i]>a[i-1] && a[i]>a[i+1]|| //中间是极大值,大于相邻的值
a[i]<a[i-1] && a[i]<a[i+1]))){ //中间是极小值,小于相邻的值
cout<<i<<' '; //注意输出格式
}
}
cout<<endl;
}
}
