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

双指针问题(同向)

一、有序数组去重

问题描述:

删除有序数组中所有重复的数据
输入:
第一行整数n表示有n个数(n<10000000),第二行n个整数x(0<x<9999999999999)
输出:
一行,去重后的数列,用空格隔开
思考:
1.考虑使用数组统计法,但是数据范围(0<×<9999999999999)范围过大,统计数组开不了这么大
2.考虑使用传统方法统计去重复,但是数据个数(n<10000000)双重循环会导致超时,好在他是有序的,可以使用双指针维护一个窗口,O(n)的时间处理这个问题

#include<iostream>
#include<iomanip>
#include<algorithm>
#include<string.h>
using namespace std;
int main()
{long long n;cin>>n;long long a[11000000];for(int i = 0;i<n;i++){cin>>a[i];}int slow = 0;for(int i = 0;i<n;i++){if(a[slow]!=a[i]) a[++slow] = a[i];}for(int i = 0;i<=slow;i++){cout<<a[i]<<" ";}return 0;
}

二、移除元素

问题描述:
删除数组(非有序)中所有等于x的数据
输入:
第一行整数n表示有n个数(n<10000000),第二行n个整数d(0<d<9999999999999)
第三行要删除的元素x
输出:
一行,删除后的数列,用空格隔开
思考:
1.数组不能打乱原有的顺序,所以不能使用数组统计法去掉要删除的数据
2.常规删除需要移动其之后的所有数据,时间复杂度为O(n平方)会超时可以使用双指针一次性去掉所有要删除的元素

#include<iostream>
#include<iomanip>
#include<algorithm>
#include<string.h>
using namespace std;
int main()
{long long n;cin>>n;long long a[11000000];for(int i = 0;i<n;i++){cin>>a[i];}long long p;cin>>p;int slow = 0;for(int i = 0;i<n;i++){if(a[i]!=p) {a[slow++] = a[i];}}for(int i = 0;i<slow;i++){cout<<a[i]<<" ";}return 0;
}

三、无重复字符的最长子串

问题描述
给定字符串s,找到其最长子串的长度,该子串需满足所有字符不重复。例如:
"abcabcbb"→输出3(子串“abc")
"pwwkew”→输出3(子串“wke")
输入
一个字符串
输出
一个整数,无重复字符的最长子串的长度

#include<iostream>
#include<iomanip>
#include<algorithm>
#include<string.h>
using namespace std;
bool ifcf(string);
int main()
{string a;cin>>a;int n = a.size();int ma = -1;string mas = "";for(int i = 0;i<n;i++){for(int j = i;j<n;j++){string z = a.substr(i,j-i+1);if(ifcf(z)==true){int l = z.size();if(ma<l){ma = l;mas = z;}}}}cout<<mas;return 0;
}
bool ifcf(string s)
{int cnt[130]={0};for(int i = 0;i<s.size();i++){cnt[s[i]]++;if(cnt[s[i]]>1) return false;}return true;
}

http://www.dtcms.com/a/562185.html

相关文章:

  • seo公司哪家便宜宁波关键词排名优化平台
  • 安徽静安集团网站建设网站打不开了怎么办
  • 建设ftp网站怎么创建数据库帮忙做ppt的网站
  • Java 大视界 -- Java 大数据在智能医疗手术风险评估与术前方案制定中的应用探索
  • 做外贸网站推广成都网站建设外包
  • linux命令-压缩-12
  • 手机网站的视频怎么才能下载wordpress top0.9主题
  • 专门做房地产设计的图片网站上谷网络网站建设
  • 网站上怎么做弹目提醒定制app开发平台
  • 下载 | Win11 25H2 正式版更新!(ISO映像、年度更新版本、26200.7019、Windows 11)
  • Java的Collection接口和常用方法(Iterator和增强for)
  • 赣州网站建设方案婚纱官网
  • 巨腾外贸网站建设网站有什么功能
  • C++ 的关键字(保留字)完整介绍
  • 诸城网站建设诸城校园招生网站建设的简报
  • JS面试基础(2) 流程控制语句与函数及其作用域
  • 构建最新的Linux系统
  • 2026年EAAI SCI1区TOP,具有维度适应性遗传的差分进化算法,深度解析+性能实测
  • 为什么做这个网站反馈问题画册专业设计公司
  • 找做网站公司需要注意什么条件网站建设的电话销售
  • 网站备案上海pos机网站模板
  • 基于C#的贵州省黔北地区乡村避暑生活共享平台设计与实现(源码+论文+部署+安装)
  • DevOps(devops/k8s/docker/Linux)学习笔记-3
  • 中恒建设职业技术培训学校网站网页编辑打印工具
  • 阿里云医疗网站建设手递手个人求职信息网
  • OpenHarmony Location Kit技术详解:定位、地理围栏与编码转换
  • 个人网站做的类型如何设置企业网站
  • JVM Full GC 优化指南
  • 如何在百度网站收录提交入口快速开发平台破解版
  • Linux系统编程——进程退出及状态回收