算法基础课:双指针算法
发布日期:2022-02-28 07:22:42
浏览次数:24
分类:技术文章
本文共 608 字,大约阅读时间需要 2 分钟。
首先对于双指针算法,必须明确,对于此问题来说,只能是一个优化问题,核心思想是把一个O(n2)的时间复杂度问题给优化到O(N)来解决。
通用模板:按照朴素算法:for(int i=0;i
具体题目举例:
给定一个长度为n的整数序列,请找出最长的不包含重复数字的连续区间,输出它的长度。 输入格式 第一行包含整数n。 第二行包含n个整数(均在0~100000范围内),表示整数序列。 输出格式 共一行,包含一个整数,表示最长的不包含重复数字的连续子序列的长度。 分析: 常常利用单调性来解决此类问题: 首先设一个I,J,其中i是正常从前向后枚举,然后对于J来说应该是I,J之间的最大距离(不重复)所以可以得到,对于每次I往后移动,看看J是否移动,然后再更新答案。 代码:#include#include using namespace std;const int max1=100010;int a[max1];int s[max1];int main(){ int n;cin>>n;int res=0;for(int i=1;i<=n;i++) cin>>a[i];for(int i=1,j=1;i<=n;i++){ s[a[i]]++;while(j 1){ s[a[j]]--;j++;}res=max(res,i-j+1);```
转载地址:https://blog.csdn.net/weixin_45854106/article/details/107016724 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
不错!
[***.144.177.141]2024年05月03日 10时54分30秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
基于Frobenius范数的标准NMF更新公式推导
2019-05-01
深度学习第一课——神经网络
2019-05-01
高斯混合模型
2019-05-01
(5)CMake入门笔记--CMake官网教程
2019-05-01
(6)CMake入门笔记--CMake官网教程
2019-05-01
(7)CMake入门笔记--CMake官网教程
2019-05-01
(8)CMake入门笔记--CMake语法
2019-05-01
(9)CMake入门笔记--同时生成动态库与静态库
2019-05-01
beyond compare 4 的30天试用期已过-解决方法
2019-05-01
面试海量数据问题
2019-05-01
TensorFlow图优化(一)-CSE(公共子表达式消除)
2019-05-01
TensorFlow图优化(二)-Remapper,layout
2019-05-01
TensorFlow btc allocator
2019-05-01
3D点云图实验
2019-05-01
linux设备驱动的实现与理解
2019-05-01
python遇到‘\u’开头的unicode编码
2019-05-01
RedHat Linux网络配置
2019-05-01
Linux下如何退出图形界面?
2019-05-01
关于C语言中的结构体对齐
2019-05-01
数据恢复过程中需要注意的一些问题
2019-05-01