题解 | #打印极值点下标#
打印极值点下标
https://www.nowcoder.com/practice/7fd72f8ac7964ba3b8baa8735246e1f1
#include <iostream> using namespace std; int main() { int n; while(cin>>n){ int a[n]; for(int i=0;i<n;i++){ cin>>a[i]; } int b[n]; int j=0; if(a[0]!=a[1]){ b[j]=0; j++; } for(int k=1;k<n-1;k++){ if(a[k]>a[k-1]&&a[k]>a[k+1]||a[k]<a[k-1]&&a[k]<a[k+1]){ b[j]=k; j++; } } if(a[n-1]!=a[n-2]){ b[j]=n-1; j++; } for(int i=0;i<j;i++){ cout<<b[i]<<" "; } cout<<endl; } } // 64 位输出请用 printf("%lld")