https://www.acwing.com/problem/content/801/
#include<bits/stdc++.h> using namespace std ; int n; const int N=100100; int a[N],s[N]; //a数组用来记录数字,s数组用来记录每个数字出现过的次数 int main() { cin>>n; for(int i=0; i<n; i++) cin>>a[i]; int res=0; for(int i=0,j=0; i<n; i++) { s[a[i]]++; while(s[a[i]]>1) { s[a[j]]--; j++; } res=max(res,i-j+1); } cout<<res<<endl; return 0; }
#include<bits/stdc++.h> using namespace std; int main() { char str[1000]; gets(str); int n=strlen(str); for(int i=0; i<n; i++) { int j=i; while(j<n&&str[j]!=‘ ‘) j++; for(int k=i; k<j; k++) cout<<str[k]; cout<<endl; i=j; } }
AcWing 799. 最长连续不重复子序列 双指针(一般先写一个朴素暴力的做法,然后看两个指针直接是否存在单调关系,如果存在,就想方法优化)