题目大意:
给n个数, n<=100W,求一个连续子序列,这个子序列中没有重复的数,问这个子序列最长是多少?
滑动窗口:当右端碰到有相同的数的时候,左端向右滑动一位数(图片出自:)
使用STL的set函数,保存a[l~r]中的所有元素集合,r增大时判断a[r+1]是否存在,若不存在则加1,否则l++继续判断
#include#include #include #include #include #define N 1e7+10using namespace std;int read(){ int x=0,f=1;char c=getchar(); while (c<'0'||c>'9') { if (c=='-') f=-1;c=getchar();} while (c>='0'&&c<='9') x=(x<<1)+(x<<3)+(c^48),c=getchar(); return x*f;}int T,n,a[10000005];int main(){ T=read(); while(T--){ n=read(); for (int i=0;i