双指针pts55!悬赏一关注

P1638 逛画展

@[_wakeup](/user/666741) ```cpp #include<iostream> #include<cstdio> using namespace std; long long n,m,a[1000100],v[2010],hua=0,minn=1000005; int main() { scanf("%lld%lld",&n,&m); for(int i=1;i<=n;i++)scanf("%lld",&a[i]); int i=1,j=0,l=1,r=n; while(i<=n) { while(hua<m&&j<n) { j++; if(v[a[j]]==0)hua++; v[a[j]]++; } v[a[i]]--; if(v[a[i]]==0)hua--; i++; if(j-i+1<minn&&hua==m)l=i,r=j,minn=j-i+1; } printf("%lld %lld",l,r); return 0; } ```
by ncwzdlsd @ 2023-03-07 18:34:39


@[_wakeup](/user/666741) 改了一下 $j$、$l$、$r$ 的初始值
by ncwzdlsd @ 2023-03-07 18:35:17


@[ncwzdlsd](/user/822239) 谢谢dalao(已关)
by _wakeup @ 2023-03-07 21:35:04


|