#196. Cows in a Row

题目描述

FJ的N头奶牛站成了一行,每头奶牛都有一个生产值,FJ认为如果将生产值相同的奶牛放在一起更令人注目。

为了使连续相同的奶牛数更多,FJ决定移走一些奶牛,但他只能移走生产值相同的奶牛,请问如何移才能得到最大的生产值连续相同的奶牛。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

请求出FJ能得到的最大连续相同生产值的奶牛数。

输入输出格式

输入格式:

第一行,一个整数N(1≤N≤1000);

接下来N行,每行一个整数,表示奶牛的生产值。(生产值的范围是[0,1000000])。

输出格式:

一个整数,表示最大连续相同生产值的奶牛数。

输入输出样例

输入样例:
9
2
7
3
7
7
3
7
5
7
输出样例:
4

说明

样例说明: 把生产值为3的奶牛移走,剩下2 7 7 7 7 5 7,连续的相同生产值的奶牛最大为4。

标准方法(自己理解哈哈)!!

//程序名:新的C++程序
//作者: hehe

#include<iostream>
#include<fstream>
#include<algorithm>
using namespace std; 
int n,o;
int a[1000000],b[1000000];
int max1;
int l,r;
int main()
{    
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
    }        
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            if(a[i]==a[j])
            {
                continue;
            }                
            else 
            {
                o++;
                b[o]=a[j];
            }
        }
        for(l=1,r=2;r<=o;r++) 
        {
            if(b[r]!=b[r-1]) 
            {
                max1=max(r-l,max1),l=r;//max函数求一段最大值
            }            
        }
        max1=max(r-l,max1);
        o=0;
    }
    cout<<max1;
    return 0;
}    

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄