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

网站开发公司需要那些硬件设备福州外包加工网

网站开发公司需要那些硬件设备,福州外包加工网,济南外贸网站,网站分析一.双指针算法的由来和使用场景 通常情况下我们可能会遇到在某些可遍历的集合中寻找满足某种性质的字串或元素。这时候我们采取暴力的思路就会面临多重循环。我们可以利用题目中所给的集合并利用其性质将多重循环降成一重循环。光用语言描述可能不太好理解。接下来看几个双指针…

一.双指针算法的由来和使用场景

通常情况下我们可能会遇到在某些可遍历的集合中寻找满足某种性质的字串或元素。这时候我们采取暴力的思路就会面临多重循环。我们可以利用题目中所给的集合并利用其性质将多重循环降成一重循环。光用语言描述可能不太好理解。接下来看几个双指针典型案例

  1. 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。力扣链接。对于这道题我们就可以利用在长度确定的条件下最长不重复字符串的长度唯一这一特点来做
  2. 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。力扣链接。这道题我们可以利用子串的每个字符出现的顺序必须要和母传出现的顺序一致来判断。

二.例题详解

  1. #include <cstdio>
    #include <algorithm>
    #include <cstring>
    #include <iostream>
    using namespace std;
    const int N = 1e5 + 10;
    int check[N];  //哈希数组
    int nums[N];
    int ret = 0;
    int main()
    {int n;cin >> n;for (int i = 0; i < n; i++)cin >> nums[i];int j = 0;              //遍历末尾指针,判断符合条件时左指针最远能离当前指针多远for (int i = 0; i < n; i++)  //双指针i控制末尾j控制初始位。利用当前问题的单调性可以将暴力降为当前算法。{check[nums[i]]++;  //新元素的出现次数增加while (check[nums[i]] > 1)  //进入这里说明有重复元素,当前维持的最长子序列已经不满足要求,同时因为单调特性左边的其实指针只能向右走{                       //(因为每次保存的都是最长字串,若能向左走则当前子串就不是最长的,所以只能向右走直到当前位置只出现过一次)check[nums[j++]]--;}ret = max(ret, i - j + 1);}cout << ret;return 0;
    }

    我们用两个指针一个用来指向最长不重复字符串的尾,一个用来指向最长不重复字符串的头。因为每个元素都可能是最长不重复字符串的尾,所以我们需要遍历整个数组。同时记录下这个元素已经出现过。若遍历时遇到元素出现两次,说明该元素之前出现过一次。同是因为左边的指针指向的是最长字符串的头,所以为了满足条件只能让头指针向后走(类比贪心,从最长的开始判断),直到当前两个指针间的是当前情况的最长不重复字符串。这样就能遍历出所有的不重复字串的长度。取最大值就是答案

  2. bool isSubsequence(string s, string t)
    {int j = 0;for (int i = 0; i < t.size(); i++)  //以一个字符串为基准,若满足相同条件再让指向待判断串的指针走,最后判断能否走到尾{if (s[j] == t[i]){j++;}}if (j == s.size()){return true;}elsereturn false;
    }

    这道题更简单易一些。同样用两个指针,一个指向字串一个指向母串。由于字母出现的顺序是确定的。我们只需要在遍历母串的时候看是否有字串当前位置的字母。若有就继续遍历,最后查看字串能否遍历到尾即可。

三.模板提取

for (int i = 0, j = 0; i < n; i ++ )
{
    while (j < i && check(i, j)) j ++ ;

    // 具体问题的逻辑
}
常见问题分类:
    (1) 对于一个序列,用两个指针维护一段区间
    (2) 对于两个序列,维护某种次序,比如归并排序中合并两个有序序列的操作

 

http://www.yayakq.cn/news/28755/

相关文章:

  • 重庆住房城乡建设厅官方网站文化共享工程网站建设情况
  • 金乡网站建设哪家便宜wordpress php7.0
  • 佛山网站建设的设计原则佛山做外贸网站推广
  • 平邑的网站都是谁做的青岛网站专业制作
  • 四川省建设厅职称查询网站自贡市工程造价信息网
  • ghostwin8网站奖别人做安卓android软件
  • 网站备案是指什么电子商务网站建设与维护书
  • 网页制作简易代码宁波seo网络推广公司
  • 公司建立网站步骤网站策划的最终体现是撰写网站策划书
  • 利川网站网站建设网站后台更新后前台没有同步更新
  • 网站建设广告平台推广企业订单管理系统软件
  • 布吉附近网站建设公司app注册
  • 网站服务搭建天津智能网站建设多少钱
  • 深圳网站建设模板乐云seo南京传媒公司
  • 自己做的网站转成二维码电脑培训班在哪里有最近的
  • 做宠物的网站主题思想电商运营学习网站
  • flash网站链接怎么做深圳创业补贴去哪里申请
  • 加快政务网站建设求个网址老哥们2021
  • 河南移动官网网站建设做展会怎么引流到自己的网站
  • 枣庄网站开发公司网站导航栏全屏怎么做
  • 携程网站建设状况北京网站建设方案案例
  • 做电影视频网站赚钱嘛低代码开发工具
  • 重庆网站推广产品武安市精品网站开发
  • 爱站在线关键词挖掘广东官方移动网站建设哪家好
  • 申请免费网站域名网页升级紧急通知拿笔记好
  • 微信微网站是什么格式赣州市建设考勤网站
  • 网站设计与管理科技公司网站首页
  • 梅州市住房和城乡建设局网站广告平面设计公司
  • 做生存分析的网站网盟推广图片
  • wordpress建站linux广东线上营销推广方案