题解 | #打印极值点下标#
打印极值点下标
https://www.nowcoder.com/practice/7fd72f8ac7964ba3b8baa8735246e1f1
#include <stdio.h>
int main() {
int n,nums[80];
while(scanf("%d",&n)!=EOF){
int A[80]={0},m=0;
for(int i=0;i<n;i++){
scanf("%d",&nums[i]);
}
for(int j=0,k=1,l=2;l<n;j++,k++,l++){
if(j==0){
if(nums[j]!=nums[k]){
A[m++]=0;
}
}
if((nums[j]>nums[k] && nums[k]<nums[l])||
(nums[j]<nums[k] && nums[k]>nums[l])){
A[m++]=k;
}
if(l==n-1){
if(nums[l]!=nums[l-1]){
A[m++]=n-1;
}
}
}
for(int i=0;i<m;i++){
printf("%d ",A[i]);
}
printf("\n");
}
return 0;
}
查看1道真题和解析