image.png

799 最长连续不重复子序列

  1. #include <iostream>
  2. using namespace std;
  3. const int N = 100010;
  4. int n;
  5. int a[N],s[N];
  6. int res=0;
  7. //s[x]表示当前j-i的字符串中,的字母出现次数,只有全为1才是不重复
  8. int main(){
  9. cin >> n;
  10. for( int i = 0; i < n; i ++ ) cin >> a[i];
  11. for(int i = 0, j = 0; i < n; i ++ ){
  12. s[a[i]]++;
  13. while(s[a[i]] > 1){
  14. s[a[j]]--;
  15. j++;
  16. }
  17. res = max(res, i - j + 1);
  18. }
  19. cout << res << endl;
  20. return 0;
  21. }
  22. // 12313