文章目录
1.思想
双指针算法的特点就是可以把O(n^2)的时间复杂度降低到O(n)。做题的时候可以先用暴力解法做,然后看这两个指针之间是否存在某种性质,再进行优化。
for (int i = 0, j = 0; i < n; i ++ )
{
while (j < i && check(i, j)) j ++ ;
// 具体问题的逻辑
}
常见问题分类:
(1) 对于一个序列,用两个指针维护一段区间
(2) 对于两个序列,维护某种次序,比如归并排序中合并两个有序序列的操作
2.例题:最长连续不重复子序列
给定一个长度为n的整数序列,请找出最长的不包含重复数字的连续区间,输出它的长度。
输入格式
第一行包含整数n。第二行包含n个整数(均在0~100000范围内),表示整数序列。
输出格式

本文介绍了如何使用双指针算法解决最长连续不重复子序列的问题,详细解析了算法思想和解题步骤。通过哈希表记录数字出现次数,动态维护区间,最终找到最长无重复数字的子序列长度。
最低0.47元/天 解锁文章
1658





