题目http://codeup.cn/problem.php?cid=100000585&pid=1
几个注意:
1,开始结束可能与邻近相等
2,k>=4没注意看题
3,用数组存储更方便
#include<stdio.h>
int main(){
int n;
while(scanf("%d",&n)!=EOF){
while(n--){
int m;
scanf("%d",&m);
int a[m],i,temp;
for(i=0;i<m;i++){
scanf("%d",&a[i]);
}
int cnt[m],index=0;
int flag1=1,flag2=1,flag=0;//后续用
if(a[0]!=a[1]&&flag1){
cnt[index++]=0;
flag1=0;
}
for(i=1;i<m-1;i++){
if(a[i]>a[i-1]&&a[i]>a[i+1]){
cnt[index++]=i;
}else if(a[i]<a[i-1]&&a[i]<a[i+1]){
cnt[index++]=i;
}
}
if(a[m-1]!=a[m-2]&&flag2){
cnt[index++]=m-1;
flag2=0;
}
for(i=0;i<index;i++){
printf("%d",cnt[i]);
if(i<index-1) printf(" ");
else printf("\n");
}
}
}
return 0;
}