【问题描述】
对于一个具有 n 个元素的整型数组 a , 若对于1≤ i <n-1
当ai >ai-1时,必有ai>ai+1, 反之亦然;
当ai<ai-1时,必有ai<ai+1, 反之亦然。
则称数组 a 为波形数组, 例如数组 1 2 -5 9 4 5为波形数组,而3 5 5 4不是波形数组。
【输入形式】
输入的第一行为一个正整数T,表示测试用例的组数。
接下来的T组数,每组的第一行为一个正整数 n ,表示数组的大小,接下来一行为 n 个整数。
【输出形式】
输出有T行,每行对应每个测试用例的结果,如果为波形数组,则输出"Yes",否则输出"No"。
【样例输入】
2 6 1 2 -5 9 4 5 4 3 5 5 4
【样例输出】
Yes No
#include<iostream>
using namespace std;
int main()
{
int n,a,T,sum;
cin>>T;
for(int j=0;j<T;j++)
{
cin>>n;
int arr[n];
for(int i=0;i<n;i++)
{
cin>>a;
arr[i]=a;
}
sum=0;//sum归零的位置非常重要
for(int k=0;k<n-2;k++)
{
if(arr[k+1]>arr[k]&&arr[k+1]>arr[k+2])
{
sum+=1;
}
else if(arr[k+1]<arr[k]&&arr[k+1]<arr[k+2])
{
sum+=1;
}
}
if(sum==n-2)
{
cout<<"Yes"<<endl;
}
else if(sum!=n-2)
{
cout<<"No"<<endl;
}
}
system("pause");
return 0;
}
该程序代码用于判断输入的整型数组是否为波形数组。它读取测试用例数量,然后对每个用例检查数组元素是否满足波形条件,即相邻元素要么严格递增要么严格递减。如果满足条件则输出Yes,否则输出No。
673

被折叠的 条评论
为什么被折叠?



