当前位置: 首页 > news >正文

池州微信网站建设软件优化

池州微信网站建设,软件优化,京推推cms网站建设,做五金行业的外贸网站作者:指针不指南吗 专栏:算法篇 🐾或许会很慢,但是不可以停下来🐾 文章目录1.双指针分类2.双指针思想3.双指针应用1.双指针分类 常见问题分类 (1) 对于一个序列,用两个指针维护一段区间, 比如快速排序。 …

作者:指针不指南吗
专栏:算法篇

🐾或许会很慢,但是不可以停下来🐾

文章目录

  • 1.双指针分类
  • 2.双指针思想
  • 3.双指针应用

1.双指针分类

常见问题分类

(1) 对于一个序列,用两个指针维护一段区间, 比如快速排序。

(2) 对于两个序列,维护某种次序,比如归并排序中合并两个有序序列的操作。(这种情况比较多)


2.双指针思想

//朴素算法 
for(int i=0;i<n;i++)for(int j=0;j<n;j++)······//每道题的具体逻辑

将上面朴素算法的 O( n2n^2n2 ) 优化为 O( n );

for (int i = 0, j = 0; i < n; i ++ )
{while (j < i && check(i, j)) j ++ ;// 具体问题的逻辑
}

所以可以想出朴素算法,然后用双指针算法做出优化


3.双指针应用

例题1.

单独输出单词

输入一个字符串,把里面的每个单词输出出来,每个单词之间用空格隔开。

思路

一个指针 i 指向单词的开头,另一个指针 j 指向单词的结尾。

  • 先枚举 i ,然后让 j 指向 i 即单词开头,j++, 直到遇到空格,表示这个单词结束。

  • 输出一个单词结束之后,记得让 i = j ,更新 i , 跳过当前单词,进入下一个的单词开头。

代码实现

#include<bits/stdc++.h>
using namespace std;int main()
{char s[100010];  //输入一个字符串gets(s);int n=strlen(s);for(int i=0;i<n;i++){   // 枚举i,i表示一个单词的开头int j=i;  while(j<n&&s[j]!=' ') j++;  //j表示单词的结尾,即不超过字符串的长度,遇到空格表示一个单词结束//这道题的具体逻辑 for(int k=i;k<=j;k++)  cout<<s[k];  //输出单词cout<<endl;i=j;  //令 i 跳过已经输出的单词}return 0;
}

例题2.

最长连续不重复子序列

给定一个长度为 n 的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。

输入格式

第一行包含整数 n。

第二行包含 n 个整数(均在 0∼105 范围内),表示整数序列。

输出格式

共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。

数据范围

1≤n≤105

输入样例:

5
1 2 2 3 5

输出样例:

3
  • 思路

    枚举 i 表示区间右端点的指针 , j 表示区间左端点的指针,

    利用区间内数字出现的个数,来判断是否满足条件;

    i 向前走一步,a [ i ] 所表示的数出现的次数多一次,用 s 数组把数字出现的次数存起来;

    j 从 0 开始走,如果在 i 走的过程中 s [ a [ i ] ] > 1,则说明 i 现在表示的数与之前的重复了,

    让 j 往前走,区间挤出去一个数,先 s [ a [ j ] ] --,再 j ++, 直到把重复的数挤出去,即 s [ a [ i ] ] <= 1;

    i 每走一步,判断一下区间大小,是否做出最大值 res 更新;

  • 代码实现

    #include<bits/stdc++.h>
    using namespace std;const int N=100010;
    int n;
    int a[N],s[N];  //a表示原整数序列,s 表示区间内数字出现的次数int main()
    {cin>>n;for(int i=0;i<n;i++) cin>>a[i];  //读入数据int res=0,i=0,j=0;  //res 表示最大的区间大小for(i=0;i<n;i++){s[a[i]]++;  //i前进,区间内a[i]的出现次数增加while(s[a[i]]>1){  //若出现重复元素则进入循环s[a[j]]--; //j前进,a[j]出现次数减少一次j++;}res=max(res,i-j+1);	//更新最大值}cout<<res;return 0;
    }
    
http://www.mmbaike.com/news/45928.html

相关文章:

  • 宁波网站建设费用最新引流推广方法
  • 商业网站制作b站推广网站2024下载
  • python 网站开发 视频网站开发用什么语言
  • 以网站建设为中心以网站功能的完善作为电子政务发展的目标的模式是?个人接外包的网站
  • net网站建设语言产品推广朋友圈文案
  • cm域名网站百度搜索引擎优化公司哪家强
  • 福州seo网站管理站长统计app软件下载官网
  • 有什么好的做家常菜的网站淘宝关键词怎么选取
  • 青岛做网络直播的网站响应式模版移动优化
  • 什么行业最容易做网站网站推广的方法有哪些?
  • 网站的用户体验主要有那些类型视频网站搭建
  • 把收藏夹网站设置成主业怎么做网络营销策略分析报告
  • cms做的电影网站搜索引擎营销的简称是
  • 上海十大b2c网站建设国家高新技术企业
  • 深圳汇鑫科技网站建设seo是什么意思中文翻译
  • 郑州恩恩网站建设网络营销专业如何
  • 保证量身定制的营销型网站文库百度登录入口
  • 泗阳网站建设网络营销策划书包括哪些内容
  • 贵阳网站制作cncolour哈尔滨百度网站快速优化
  • wordpress对接COS后网站变慢app广告联盟平台
  • 锦州网站做优化sem竞价托管价格
  • wordpress去除acfseo技术培训广东
  • ps做网站的流程品牌宣传推广方案
  • wordpress博客西安seo推广优化
  • 网站怎么添加后台免费域名申请网站大全
  • 金山网站建设推广seo优化快排
  • 西安网站建设托管腾讯营销平台
  • 烟台网站制作培训怎么学做电商然后自己创业
  • sssdizhifabu.wordpress.com重庆网站seo多少钱
  • 2018网站建设竞价账户