这道题没啥讲的,就不写详解了,就是枚举h[1]
到h[n-2]
个数(下标从0开始),判断h[i]
是否大于h[i-1]
和h[i+1]
就行了。
程序如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
int t,r=1;//r为组别编号,从1开始。
cin>>t;
while(t--)
{
int n,ans=0;
cin>>n;
int h[n]={0};
for(int i=0;i<n;i++)
cin>>h[i];
for(int i=1;i<n-1;i++)//暴力枚举。
if(h[i]>h[i-1]&&h[i]>h[i+1])ans++;
printf("Case #%d: %d\n",r,ans);
r++;//组别编号加一。
}
}
经过@acwing2ak的提醒,我决定把while循环改成for循环。
程序如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
int t;
cin>>t;
for(int j=1;j<=t;j++)
{
int n,ans=0;
cin>>n;
int h[n]={0};
for(int i=0;i<n;i++)
cin>>h[i];
for(int i=1;i<n-1;i++)
if(h[i]>h[i-1]&&h[i]>h[i+1])ans++;
printf("Case #%d: %d\n",j,ans);
}
}
恶搞版了解一下