题目描述
给定 n 个正整数,在数列中找到第一个连续出现至少 k 次的数字。
【输入格式】
第一行包含两个正整数k 和 n,k表示至少需要连续出现的次数(1 ≤k≤1000),n 表示数列的长度。
第二行包含需要查找的数列。数列长度在 1到 1000之间,且不包含任何空白符。
【输出格式】
若存在连续出现至少 k次的字符,输出该数字;否则输出 No 。
【输入输出样例#1】
输入#1
3 9 1 2 3 3 3 1 1 1 2
输出#1
3
【输入输出样例#2】
输入#2
5 9 1 2 3 3 3 1 1 1 2
输出#2
No
下面是我写的代码:
#include <iostream>
using namespace std;
int main()
{
int f,k,sum=1;//sum从1开始计数
cin>>f>>k;
int a[k];
cin>>a[1];//先把第1个数输入
for(int i=2;i<=k;i++)//i从2开始
{
cin>>a[i];
if(a[i]==a[i-1])//相等sum+=1
{
sum++;
}
if(sum>=f)//如果sum>=f直接输出吗并return
{
cout<<a[i];
return 0;
}
if(a[i]!=a[i-1])
{
sum=1;//如果不相等sum重新回到1
}
}
cout<<"No";//前面都没有return说明没有数满足要求
return 0;
}
没有登陆:
#include <iostream>
using namespace std;
int main()
{
int f,k,sum=1;//sum从1开始计数
cin>>f>>k;
int a[k];
cin>>a[1];//先把第1个数输入
for(int i=2;i<=k;i++)//i从2开始
{
cin>>a[i];
if(a[i]==a[i-1])//相等sum+=1
{
sum++;
}
if(sum>=f)//如果sum>=f直接输出吗并return
{
cout<<a[i];
return 0;
}
if(a[i]!=a[i-1])
{
sum=1;//如果不相等sum重新回到1
}
}
cout<<"No";//前面都没有return说明没有数满足要求
return 0;
}