具有最大子序列大小的序列,每个元素都相同

Sequence with largest size of subsequence having each element as same

本文关键字:元素      更新时间:2023-10-16

我想找出每个元素都等于5的最大连续子序列。

我试着为此编写代码,但无法找到正确的方法

示例->如果序列类似于5 5 1 0 93 43 5 5 5 5 21答案将是4,因为阵列中存在4个连续的5。附言-我是个新手。

int large(int a[],int n)
{
int i=0,j=0,sublen=0;
while(i<n)
{
if(a[i]==1)
{
sublen++;
for(int j=i+1;j<n;j++)
{
if(a[j]==1)
{
sublen++;
}
else
{
i=j+1;
continue;
}
}
}   
else
{
i++;
}
}
return sublen;
}

您可以简单地遍历序列,当您看到一个5,然后递增一个计数器,否则将计数器重置为0。当您递增计数器测试以查看它是否是迄今为止保持的最大值时。最后返回最大值。

类似于:

int large(const int *a, int n)
{
int sublen = 0, counter = 0;
for (int i = 0; i < n; ++i) {
if (a[i] == 5) { // found a 5
++counter;
if (sublen < counter) { // test for largest value so far
sublen = counter;
}
} else { // not a 5
counter = 0;
}
}
return sublen;
}