CF_602B(模拟水题)

本文介绍了一道通过尺取法模拟解决的算法题目,详细展示了如何利用尺取法来寻找最大连续子数组,其中包含不超过两种不同元素的情况。通过对代码的分析,帮助读者理解尺取法的基本思想及其实现细节。

纯水题,也可以尺取法模拟。

几个易错数据:

6

1 1 1 1 1 2

2

1 2

1

1

5

1 2 2 2 2

代码:

#include<iostream>
#include<stdio.h>
#include<math.h>
#include<string>
#include<string.h>
using namespace std;
int a[1000000+100]={0};
int ge[1000000+100]={0};
int main()
{
    //freopen("F://input.txt","r",stdin);
    memset(a,0,sizeof(a));
    memset(ge,0,sizeof(ge));
    int t;
    scanf("%d",&t);
    int i,q,w,l,r;
    for(i=1;i<=t;i++)
    {
        scanf("%d",&a[i]);
    }
    if(t==1||t==2)
    {
        printf("%d\n",t);
        return 0;
    }
    l=1,r=2;
    int max=0;
    int shu1=a[1],shu2=(a[2]==a[1]?0:a[2]);
    ge[shu1]+=1;
    if(shu2!=0)
    ge[shu2]+=1;
    else
    ge[shu1]+=1;
    for(;;)
    {
        if(r==t)break;
        if(shu2==0)
        {
            r+=1;
            if(shu1==a[r])
            {
                ge[shu1]+=1;
                if(max<r-l+1)max=r-l+1;
                continue;
            }
            else
            {
                shu2=a[r];
                ge[shu2]+=1;
                if(max<r-l+1)max=r-l+1;
                continue;
            }
        }
        if(ge[shu1]==0||ge[shu2]==0)
        {
            r+=1;
            if(ge[shu1]==0){
                    shu1=a[r];
                    ge[shu1]+=1;
            }
            if(ge[shu2]==0){
                    shu2=a[r];
                    ge[shu2]+=1;
            }
            if(max<r-l+1)max=r-l+1;
            continue;
        }
        if(a[r+1]!=shu1&&a[r+1]!=shu2&&shu1!=0&&shu2!=0)
        {
                ge[a[l]]-=1;
                l+=1;
                if(max<r-l+1)max=r-l+1;
                continue;
        }
        {
            r+=1;
            ge[a[r]]+=1;
            if(max<r-l+1)max=r-l+1;
            continue;
        }
    }
    printf("%d\n",max);
    return 0;
}


[ { "items": [ { "last_liked_time": "1753787403", "user_id": "ou_f75dc93a492799bc9cdb5dc8cdd67cb4" }, { "last_liked_time": "1753787278", "user_id": "ou_8519e2cfad2f71771f3bb6879214f389" }, { "last_liked_time": "1753194910", "user_id": "ou_602b1031ea1696f4725a087c5d69b6bb" }, { "last_liked_time": "1751882265", "user_id": "ou_9bb0e071ee12b3fb9d29bd3033c99508" }, { "last_liked_time": "1751867852", "user_id": "ou_fbdcafef591986d14cac0195adb133c1" }, { "last_liked_time": "1751864552", "user_id": "ou_5ac6206a95a2dfbf05e04c7b7c2b6b37" }, { "last_liked_time": "1751817200", "user_id": "ou_bf081a37846cefdfe439e04181ed4db3" }, { "last_liked_time": "1751712819", "user_id": "ou_0c10a828588a96438a186c0bfa57c081" }, { "last_liked_time": "1751673413", "user_id": "ou_dad0701200fdcfbe0bfaf262e3c16cfd" }, { "last_liked_time": "1751630280", "user_id": "ou_46992ef08937a80587151951192251c1" }, { "last_liked_time": "1751623831", "user_id": "ou_fe01686e7e7f78264ce868925bc77c75" }, { "last_liked_time": "1751623533", "user_id": "ou_4e756af89aaacfe38aa958ff86e58eb3" }, { "last_liked_time": "1751623413", "user_id": "ou_f372c6d86dbad16399d0b25a71966edf" }, { "last_liked_time": "1751623303", "user_id": "ou_06d91eac0971f96086a87ddf8812d9e6" }, { "last_liked_time": "1751623146", "user_id": "ou_de34d3ad1f8dab17122c8f9ed49bc496" }, { "last_liked_time": "1751623068", "user_id": "ou_b64de2632eea5aff3d4224ef4e918b1b" }, { "last_liked_time": "1751622831", "user_id": "ou_667622214a005cb5dd47a09e0f567e84" }, { "last_liked_time": "1751622505", "user_id": "ou_a8e482748c36704d6fa250752ad17246" }, { "last_liked_time": "1751620333", "user_id": "ou_210ad63c4519324e703e3ad24fc2bc3b" }, { "last_liked_time": "1751619569", "user_id": "ou_a5ec5ed149def1c6d43a4ddd50055557" }, { "last_liked_time": "1751619416", "user_id": "ou_0205a3f7b4cf0496366978db2e6dfb0c" }, { "last_liked_time": "1751619138", "user_id": "ou_0998bea41697483efd1186c01863a62f" }, { "last_liked_time": "1751618657", "user_id": "ou_2cc18c43929ac54f54bf28d1f0b5932b" }, { "last_liked_time": "1751618458", "user_id": "ou_b68c3e26430ca193f637fa4a5009ee47" }, { "last_liked_time": "1751618453", "user_id": "ou_9e173b3c591845f8d410dbaced9104c8" }, { "last_liked_time": "1751618404", "user_id": "ou_2154403678f20915a2148a305bad8968" }, { "last_liked_time": "1751618340", "user_id": "ou_fec421430d7e045ae065f450bdd179d8" }, { "last_liked_time": "1751617983", "user_id": "ou_3eb0be57725363b560eacbff2ae13cee" }, { "last_liked_time": "1751617650", "user_id": "ou_b4cbdbda40dd57dc9b5344443f0ac2f1" }, { "last_liked_time": "1751617621", "user_id": "ou_9bee07c6524699449db850ae6ff0d6b3" }, { "last_liked_time": "1751617498", "user_id": "ou_14a7f03d3db57971a26858e29c4d5187" }, { "last_liked_time": "1751617485", "user_id": "ou_c822a10aebf024b06a553c1cd8f5b923" }, { "last_liked_time": "1751617392", "user_id": "ou_b82420bd51fc5ac104f7dcb4e652155d" }, { "last_liked_time": "1751617379", "user_id": "ou_c82477ffa424c81299656d77a409247c" }, { "last_liked_time": "1751617261", "user_id": "ou_3ddf57a7dc73304218fa81013bd633bb" }, { "last_liked_time": "1751617249", "user_id": "ou_9ef2369512d09bac4fc904472d0dbde6" }, { "last_liked_time": "1751617205", "user_id": "ou_4a08f5f7a4f00c96a3aa481df3fa70d4" }, { "last_liked_time": "1751617186", "user_id": "ou_c6134714ff57c8684e3566e749be5bbf" }, { "last_liked_time": "1751617173", "user_id": "ou_a5f4b10670be180c015445ec4659d8f2" }, { "last_liked_time": "1751617121", "user_id": "ou_ef4eac41234b44e76d991d1d7bfafdb8" }, { "last_liked_time": "1751617110", "user_id": "ou_31d574c687ad27cc44dd364813ee3729" }, { "last_liked_time": "1751617088", "user_id": "ou_0f6a28eec760a49746fd8296fe414e4d" }, { "last_liked_time": "1751617060", "user_id": "ou_e84bc867351307ccb57d8fcee2b1de84" }, { "last_liked_time": "1751617054", "user_id": "ou_82f74f4c5dae37d025f6923ec8180ac0" }, { "last_liked_time": "1751617009", "user_id": "ou_dc0ff74fa97084454fa143499b3b65ac" }, { "last_liked_time": "1751616999", "user_id": "ou_e68944196d49c312f4bb1fac39ce0b9d" }, { "last_liked_time": "1751616990", "user_id": "ou_0ea127334f9080258f62d89bb70c3c7f" }, { "last_liked_time": "1751616920", "user_id": "ou_6514d1e76cafbc4d80a05344e4d4c4e3" }, { "last_liked_time": "1751616831", "user_id": "ou_742b9b755d527c49ede42b902c34bfe7" }, { "last_liked_time": "1751592116", "user_id": "ou_32ac6aff28b650f0cc4235ae091a8be4" } ] }, { "items": [ { "last_liked_time": "1751446964", "user_id": "ou_6eccfa7e43bedcf3b1461837ef184f9e" }, { "last_liked_time": "1751445743", "user_id": "ou_03b13aab2141a7f90cd5d6659a7a0756" }, { "last_liked_time": "1751445661", "user_id": "ou_03c8ea69acaa5cba8d96685f9983ccf7" }, { "last_liked_time": "1751445559", "user_id": "ou_8216f5ab721d39b9a7f969dc6ccf3167" } ] } ] 上述内容中一共有多少个user_id?
07-30
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值