题解 | #打印极值点下标#
打印极值点下标
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; } }