标签:
尺取法。
#include<cstdio> #include<cstring> #include<cmath> #include<queue> #include<map> #include<algorithm> using namespace std; const int maxn=1000000+10; int n,size; int a[maxn]; map<int,int>f; int ans; int main() { while(~scanf("%d",&n)) { f.clear(); size=0; ans=n; for(int i=1;i<=n;i++) { scanf("%d",&a[i]); if(f[a[i]]==0) { size++; f[a[i]]=1; } } f.clear(); int l=1,r=1,num=1; f[a[1]]++; while(1) { if(num==size) { ans=min(ans,r-l+1); f[a[l]]--; if(f[a[l]]==0) num--; l++; } else { if(r==n) break; r++; f[a[r]]++; if(f[a[r]]==1) num++; } } printf("%d\n",ans); } return 0; }
POJ 3320 Jessica's Reading Problem
标签:
原文地址:http://www.cnblogs.com/zufezzt/p/5389023.html