模板:
for(int i=0,j=0;i常见问题分类:
(1):对于一个序列,用两个指针维护一段区间
(2):对于两个序列,维护某种次序,比如归并排序中合并两个有序序列的操作双指针算法核心:优化
输出单词
两个指针暴力求解时间复杂度O(n^2)
双指针运用某些单调性质优化后,时间复杂度可变为O(n),因为总体来看两个指针都是遍历序列一次C++ string
用cin读入的话 是遇到空格停止
用getline(cin,str)读入的话 是遇到换行停止_输入串字符 输出字符串中的单词,单词与单词之间以空格隔开
#include#include using namespace std; int main() { string str; getline(cin,str);//读入方式 遇到换行停止 //cin>>str 遇到空格停止 for(int i=0;i AcWing 799.最长连续不重复子序列 #include#include using namespace std; const int N=1e5+10; int a[N],s[N];//s[N]存储当前探索区间每个元素出现得次数 int n; int main() { cin>>n; for(int i=0;i >a[i]; int res=0; for(int i=0,j=0;i 1) { //s[a[j++]]--; s[a[j]]--; j++; } res=max(res,i-j+1); } cout<



