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

数组之双指针题

文章目录

  • 一、最长连续不重复子序列
    • 1.题目介绍
    • 2.思路
    • 3.
  • 二、长度最小的子数组
    • 1.题目介绍
    • 2.思路
    • 3.代码
  • 三、数组元素的目标和
    • 1.题目介绍
    • 2.思路
    • 3.代码
  • 总结


在这里插入图片描述

其实在之前我写过不少双指针得题解,刷题专练之数组移除元素
刷题专练之翻转题练习这两篇文章的题解基本就是双指针法,加上这篇文章,数组的双指针法的思想基本就已经很完善了,而且今天的代码基本都可以当作模板

一、最长连续不重复子序列

1.题目介绍

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

输入格式
第一行包含整数 n。

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

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

数据范围
1≤n≤105
在这里插入图片描述

2.思路

首先题目需要我们找出一个没有重复数字的最长的最长的连续区间,这个问题我们可以分成两个子>问题
(1).找出一个具有某种性质的最长的区间
(2).这个性质是不包含重复数字
对于第一个问题找一个区间,这不就是需要双指针吗?我们用i和j来维护这个区间,那我们还需要解决不包含重复数字这种性质
我们可以这样,我们可以对区间里的数字进行统计,出现大于1的数字我们就更新,具体的实现看代码

3.

#include<stdio.h>int  max(int a,int b)//这个函数用来比较最大值
{return a>b?a:b;
}
int main()
{   const int N=100010;int a[N],b[N];int n,i,j;int res;scanf("%d",&n);for(i=0,j=0;i<n;i++)//i和j就是我们判断的区间{scanf("%d",&a[i]);++b[a[i]];//每当i往前面走的时候,我们对于进来得1数字+1,那样我们就可以判断每个数字出现的次数while(b[a[i]]>1)//如果有一个数字出现两次,那么一定是是i带进来的数,因为i以前的数我们在之前就已经检查过了{--b[a[j++]];//没当j向前走的时候我们将离开的数减一}res=max(res,i-j+1);}printf("%d ",res);return 0;
}

二、长度最小的子数组

理解了上面的题,这题基本就是水到渠成了

1.题目介绍

来源于力扣的209. 长度最小的子数组
在这里插入图片描述

2.思路

做了上面的题,这题就比较清楚了我们只需要更改更新方式和比较方式,具体在代码里

3.代码

int min(int a,int b)
{return a<b?a:b;
}
int minSubArrayLen(int target, int* nums, int numsSize){int i,j;int res=INT_MAX;//如果我们需要比较最小,我们就要讲res赋成最小值int sum=0;for(i=0,j=0;i<numsSize;i++){sum+=nums[i];//每当i进来时,我们就加上这个进来的数while(sum>=target){res=min(res,i-j+1);sum-=nums[j];//每当j移动时,我们将走的数从和中间减去j++;}}if(res==INT_MAX){return 0;}return res;}

三、数组元素的目标和

1.题目介绍

在这里插入图片描述

2.思路

这里题目给了两个升序区间,如果题目只给一个是不是很好想,我们会用两个指针,一个指向begin(i),一个指向end(j),如果小了begin++,如果打了就end–,可是这里是两个,其实和只有一个是同理的

3.代码

#include<stdio.h>int main()
{const int N=100010;int a[N],b[N];int i,j;int n,m,x;scanf("%d %d %d",&n,&m,&x);for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=0;i<m;i++)scanf("%d",&b[i]);i=0;j=m-1;while(1){if(a[i]+b[j]<x){i++;   }else if(a[i]+b[j]>x){j--;}else{break;}}printf("%d %d",i,j);}

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

相关文章:

数组之双指针题

文章目录一、最长连续不重复子序列1.题目介绍2.思路3.二、长度最小的子数组1.题目介绍2.思路3.代码三、数组元素的目标和1.题目介绍2.思路3.代码总结其实在之前我写过不少双指针得题解&#xff0c;刷题专练之数组移除元素 刷题专练之翻转题练习这两篇文章的题解基本就是双指针法…...

真实需求和梦想实现满足

多少的时光和岁月中都不曾认真系统的深度思考自己的真实需求和欲望之间是否一致&#xff0c;随着时间的流逝才发现自己追求的是一场空&#xff0c;自己的真实需求并不是苦苦追求的东西&#xff0c;这也是当梦想照进现实&#xff01;欲望是无善无恶的&#xff0c;不必为了满足自…...

[ant-design-vue] tree 组件功能使用

[ant-design-vue] tree 组件功能使用描述环境信息相关代码参数说明描述 是希望展现一个树形的菜单&#xff0c;并且对应的菜单前有复选框功能&#xff0c;但是对比官网的例子&#xff0c;我们在使用的过程中涉及到对半选中情况的处理&#xff1a; 半选中状态&#xff1a; 选中…...

QT父子窗口事件传递与事件过滤器

处理监控系统的时候遇到问题&#xff0c;在MainWidget中创建多个子Widget的时候&#xff0c;原意是想鼠标点击先让MainWidget截获处理后再分派给子Widget去处理&#xff0c;但调试后发现如果子Widget重新实现了事件方法&#xff0c;就直接处理掉事件了&#xff0c;没有进到Main…...

【2.4 golang中的循环语句for】

- 循环语句for 1. 循环语句for 1.1.1. Golang for支持三种循环方式&#xff0c;包括类似 while 的语法。 for循环是一个循环控制结构&#xff0c;可以执行指定次数的循环。 语法 Go语言的For循环有3中形式&#xff0c;只有其中的一种使用分号。 for init; condition; pos…...

Windows 系统下 Apache 和 php 环境怎么搭建?

传统搭建方法在 Windows 系统下&#xff0c;可以通过以下步骤来搭建 Apache 和 PHP 环境&#xff1a;1.下载 Apache 在 Apache 官网下载最新版本的 Apache&#xff0c;例如下载地址为 https://httpd.apache.org/download.cgi。2.安装 Apache 将下载的 Apache 压缩包解压到某个目…...

Python基础知识——字符串、字典

字符串 在Python中&#xff0c;字符和字符串没有区别。可能有些同学学过其他的语言&#xff0c;例如Java&#xff0c;在Java中&#xff0c;单引号’a’表示字符’a’&#xff0c;双引号"abc"表示字符串"abc"&#xff0c;但在Python当中&#xff0c;它们没…...

JVM常用指令

JVM常用指令1.准备工作2.jps3. jconsole4.jstat5.jstack6.jmap7.jvisualvm工具8.自动dump内存信息1.准备工作 在idea中编写代码 public class JVMTest {Testpublic void test() throws InterruptedException {while (true) {Thread.sleep(1000);System.out.println(123);}} }…...

排序中常见的一些指标

1、错误率与精度 错误率与精度是分类任务中最常用的两种性能度量&#xff0c;错误率是指分类错误的样本占样本总数的比例&#xff0c;精度则是分类正确的样本数占样本总数的比例。 错误率&#xff1a; 精度&#xff1a; 2、准确率/召回率/FScore True Positive(真正例, TP)&…...

51单片机入门————数码管显示

我们在马路上看到的红绿灯&#xff0c;就是由数码管来实现的&#xff0c;就是其中可能加入了一些延时和转换数码管是通过控制138译码器与74HC245来控制数码管的亮灭与数字的显示电路原理图我们先讨论一个数码管数码管有共阳极和共阴极&#xff0c;我们现在使用的STC89C52是共阴…...

Spring事务未生效场景

一.抛出事务不支持的异常 原理&#xff1a; Spring事务默认支持RuntimeException异常&#xff0c;抛出的异常为RuntimeException异常及其子类异常事务均可生效&#xff0c;而我们日常常见的异常基本都继承自RuntimeException&#xff0c;所以无需指定异常类型事务也能生效。但…...

servlet注解开发

文章目录servlet注解开发内容回顾响应对象 HttpServletResponse重定向与请求转发ServletConfig简介案例ServletContext简介案例Servlet 注解开发简介注解使用案例WebServlet 注解详细参数综合的增删改查案例登录注册功能servlet注解开发 内容回顾 响应对象 HttpServletRespon…...

mysql一联合主键

联合主键就是用2个或2个以上的字段组成主键。用这个主键包含的字段作为主键&#xff0c;这个组合在数据表中是唯一&#xff0c;且加了主键索引。 可以这么理解&#xff0c;比如&#xff0c;你的订单表里有很多字段&#xff0c;一般情况只要有个订单号bill_no做主键就可以了&…...

openpnp - 判断吸嘴是否指定了正确的旋转轴

文章目录openpnp - 判断吸嘴座是否指定了正确的旋转轴概述笔记吸嘴单独矫正的时候Calibrate precise camera ↔ nozzle N1 offsets.ENDopenpnp - 判断吸嘴座是否指定了正确的旋转轴 概述 如果没有指定吸嘴座的正确旋转轴, 会因为对应吸嘴该旋转时不旋转, 而是另外一个空闲的吸…...

【办公类-19-03】办公中的思考——Python批量统一文件名的序号(保教主任整理打印文件)

背景需求&#xff1a;为迎接督导检查&#xff0c;保教主任从各条线收集文本资料。并在每个文件名称前手动编号。但是她嘀咕道&#xff1a;”为什么两套资料放在一个文件里就不是按照数字序号排序&#xff1f;&#xff0c;有的是1X-&#xff0c;有的是40X&#xff0c;看起来很乱…...

MySQL约束

约束约束总结约束 1、概念&#xff1a;约束是作用于表中字段上的规则&#xff0c;用于限制存储在表中的数据。 2、目的&#xff1a;保证数据库中数据的正确、有效性和完整性。 3、分类&#xff1a; 注意&#xff1a;约束是作用于表中字段上的&#xff0c;可以在创建表/修改表…...

x86 平台利用 qemu-user-static 实现 arm64 平台 docker 镜像的运行和构建

文章目录[toc]关于 docker 版本查看是否开启 experimental 功能开启 experimental 功能查看当前环境平台拉取一个 arm 平台的容器运行一个 arm 平台的容器整一个 qemu-user-static注册可支持的架构解释器尝试启动 arm64 镜像尝试启动 ppc64le 镜像后台运行 arm64 容器build 一个…...

找工作经验分享

好的简历的特点&#xff1a;简洁&#xff1a;不要使用花里胡俏的简历模板&#xff0c;一般就是一行行写下来那种就行主次分明&#xff1a;一定要有重点&#xff0c;让面试了解你强项是什么首先当然是突出技术&#xff0c;不要花大批篇幅在个人信息、兴趣爱好等&#xff0c;重点…...

C语言学习之路--操作符篇,从知识到实战

目录一、前言二、操作符分类三、算术操作符四、移位操作符1、左移操作符2、右移操作符五、位操作符拓展1、不能创建临时变量&#xff08;第三个变量&#xff09;&#xff0c;实现两个数的交换。2、编写代码实现&#xff1a;求一个整数存储在内存中的二进制中1的个数。六、赋值操…...

【华为OD机试2023】端口合并 C++ Java Python

【华为OD机试2023】端口合并 C++ Java Python 前言 如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您解答,也可以给您一些建议! 本文解法非最优解(即非性能最优),不能保证通过率。 Tips1:机试为ACM 模式 你的代码需要处理输入输出,input/cin接收输入、…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

synchronized 学习

学习源&#xff1a; https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖&#xff0c;也要考虑性能问题&#xff08;场景&#xff09; 2.常见面试问题&#xff1a; sync出…...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接&#xff0c;私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时&#xff0c;与数据库的交互无疑是核心环节。虽然传统的数据库操作方式&#xff08;如直接编写SQL语句与psycopg2交互&#xff09;赋予了我们精细的控制权&#xff0c;但在面对日益复杂的业务逻辑和快速迭代的需求时&#xff0c;这种方式的开发效率和可…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来&#xff0c;实在找不到&#xff0c;希望有大佬教一下我。 还有就会议时间&#xff0c;我感觉不是图片时间&#xff0c;因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

GitHub 趋势日报 (2025年06月08日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...