ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

算法学习之路 双指针算法

2022-07-29 03:00:48  阅读:31  来源: 互联网

标签:int res 学习 ++ 算法 数组 指针


/* 双指针算法可以解决像最长不重复子序列一样的问题 思路:先暴力想思路判断check()的条件,再将n^2利用模板优化为n的双指针算法; 总思路模板:       for(int i = 1,j = 1;i < n;i++)     {         while(j < i && check())         {             j++;             s[a[i]]--;         }         res = max(res , i - j + 1);     } */ //处理最长不重复子序列的双指针算法   #include<bits/stdc++.h> using namespace std; const int N = 10010; int a[N]; int b[N];//注意标记数组的类型要与数组保持一致; int main() {     int n;     cin>>n; //数组长度为n     for(int i = 0;i < n;i++)     {         cin>>a[i];     }     int res  = 0;     for(int i = 0,j = 0;i < n;i++)     {         b[a[i]]++;         while(j < i && b[a[i]] > 1)         {             b[a[j]]--;             j++;         }         res = max(res , i - j + 1);     }     cout<<res;     system("pause");     return 0; }

标签:int,res,学习,++,算法,数组,指针
来源: https://www.cnblogs.com/Mr-yinghexiaoma/p/16530493.html

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有