黑龙seo网站优化,线上p2p网站建设,做网站设计需求,wordpress子目录和多域名双指针一般应用于维护两个队列#xff0c;或者同一队列。
常见写法如下 for (int i 0, j 0; i n; i){while (j i check(i, j)) j;//每道题的具体逻辑}
双指针的核心思想是把如下O(n^2)的算法优化位O(n) for (int i 0; i n; i){for (int j 0; …双指针一般应用于维护两个队列或者同一队列。
常见写法如下 for (int i 0, j 0; i n; i){while (j i check(i, j)) j;//每道题的具体逻辑}
双指针的核心思想是把如下O(n^2)的算法优化位O(n) for (int i 0; i n; i){for (int j 0; j n; j){//-----------}}
实例给定一个字符串abc def ghe输出字符串的每个字串
#includeiostream
#includestring.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; //j此时指向空格//具体题目逻辑for (int k i; k j; k)cout str[k];cout endl;//记录最新位置i j;}return 0;
}
最长连续不重复子序列
给定一个长度为 nn 的整数序列请找出最长的不包含重复的数的连续区间输出它的长度。
#include iostreamusing namespace std;const int N 100010;int n;
int q[N], s[N];int main()
{scanf(%d, n);for (int i 0; i n; i ) scanf(%d, q[i]);int res 0;//使用i j 维护一段区间确保此区间内无重复元素。如果发现重复元素通过移移动j来剔除重复元素//i j是单调的for (int i 0, j 0; i n; i ){s[q[i]] ;while (j i s[q[i]] 1) s[q[j ]] -- ;res max(res, i - j 1);}cout res endl;return 0;
}