AcWing 799. 最长连续不重复子序列 双指针(一般先写一个朴素暴力的做法,然后看两个指针直接是否存在单调关系,如果存在,就想方法优化)

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;
    }
}
原文地址:https://www.cnblogs.com/QingyuYYYYY/p/11773596.html