【蓝桥杯集训4】双指针专题(6 / 6)
目录
3768. 字符串删减 - 滑动窗口ac
799. 最长连续不重复子序列 - 滑动窗口
800. 数组元素的目标和 - 二分ac
2816. 判断子序列 - 双指针
1238. 日志统计 - 滑动窗口
1240. 完全二叉树的权值 - 双指针
1、前缀和 - 通过了 5/12个数据
2、双指针
3768. 字符串删减 - 滑动窗口ac
3768. 字符串删减 - AcWing题库
题目:
思路:
用双指针l和r,移动r指针
当已经统计了2个x,若下一个字符为x,则需要删除1个x,且滑窗左边界往后移一位
若下一个字符不为x,则统计x个数的cnt清零,缩小滑窗至该非x字符上
import java.util.*;class Main
{public static void main(String[] args){Scanner sc=new Scanner(System.in);int n=sc.nextInt();String s=sc.next();int res=0,cnt=0;for(int l=0,r=0;r<n;r++){char c=s.charAt(r);if(cnt==2&&c=='x'){res++;l++;}else if(c=='x') cnt++;else {cnt=0;l=r;}}System.out.print(res);}
}
799. 最长连续不重复子序列 - 滑动窗口
活动 - AcWing
题目:
给定一个长度为 n 的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。
输入样例:
5
1 2 2 3 5
输出样例:
3
思路:
用一个数组统计每个数字出现个数
滑动窗口中如果出现重复数字,则左边界增大缩小滑窗直至不出现重复数字
不断更新最大连续不重复子序列长度
import java.util.*;class Main
{static int N=100010;static int[] st=new int[N];public static void main(String[] args){Scanner sc=new Scanner(System.in);int n=sc.nextInt();int[] a=new int[n];for(int i=0;i<n;i++) a[i]=sc.nextInt();int res=0;for(int l=0,r=0;r<n;r++){st[a[r]]++;while(l<r&&st[a[r]]>1) st[a[l++]]--; //如果滑窗内仍存在重复数字 则缩小滑窗res=Math.max(res,r-l+1);}System.out.print(res);}
}
800. 数组元素的目标和 - 二分ac
活动 - AcWing
import java.util.*;class Main
{static int N=100010;static int[] a=new int[N],b=new int[N];public static void main(String[] args){Scanner sc=new Scanner(System.in);int n=sc.nextInt(),m=sc.nextInt(),x=sc.nextInt();for(int i=0;i<n;i++) a[i]=sc.nextInt();for(int j=0;j<m;j++) b[j]=sc.nextInt();for(int i=0;i<n;i++){int t=x-a[i];int l=0,r=m-1;while(l<r){int mid=l+r>>1;if(b[mid]>=t) r=mid;else l=mid+1;}if(b[l]==t){System.out.print(i+" "+l);break;}}}
}
2816. 判断子序列 - 双指针
活动 - AcWing
题目:
思路:
用i指针指向a,j指针指向b
遍历b数组,如果a[i]==b[j],则向后移动i指针
如果遍历完,i==n,说明a全部匹配成功,说明a是b的子序列
import java.util.*;class Main
{static int N=100010;static int[] a=new int[N],b=new int[N];public static void main(String[] args){Scanner sc=new Scanner(System.in);int n=sc.nextInt(),m=sc.nextInt();for(int i=0;i<n;i++) a[i]=sc.nextInt();for(int j=0;j<m;j++) b[j]=sc.nextInt();int i=0;for(int j=0;j<m;j++){if(i<n&&a[i]==b[j]) i++;}if(i==n) System.out.print("Yes");else System.out.print("No");}
}
1238. 日志统计 - 滑动窗口
活动 - AcWing
题目:
思路:
按时间从小到大顺序排序
枚举时间段,滑动窗口内为合法时间,记录该区间内帖子的赞数
如果在滑窗内且赞数≥k,则为热帖,标记上
import java.util.*;class Main
{static int N=100010;public static void main(String[] args){Scanner sc=new Scanner(System.in);int n=sc.nextInt(),d=sc.nextInt(),k=sc.nextInt();int[][] list=new int[n][2];int[] cnt=new int[N];int[] st=new int[N];for(int i=0;i<n;i++){list[i][0]=sc.nextInt();list[i][1]=sc.nextInt();}Arrays.sort(list,(o1,o2)->{return o1[0]-o2[0];});for(int l=0,r=0;r<n;r++) //滑动窗口是合法时间段 统计滑窗内是否有热帖存在{int id=list[r][1];cnt[id]++;while(list[r][0]-list[l][0]>=d) //超过最大时间段 缩小滑窗{cnt[list[l][1]]--;l++;}if(cnt[id]>=k) st[id]=1;}for(int i=0;i<=100000;i++) if(st[i]==1) System.out.println(i);}
}
1240. 完全二叉树的权值 - 双指针
活动 - AcWing
题目:
1、前缀和 - 通过了 5/12个数据
看错题了,概念问题,是完全二叉树,看成满完全二叉树了……
完全二叉树,共n层,其中n-1层是满二叉树结构,最后一层所有节点都在最左边
import java.util.*;class Main
{static int N=100010;public static int work(int n){int cnt=0;while(n>1){n/=2;cnt++;}return cnt;}public static void main(String[] args){Scanner sc=new Scanner(System.in);int n=sc.nextInt();int[] a=new int[N];int[] s=new int[N];for(int i=1;i<=n;i++) {a[i]=sc.nextInt();s[i]=s[i-1]+a[i];}int t=work(n+1);t--;int cnt=1,pre=1;int maxx=s[1],res=1;while(t-->0){int r=(int)Math.pow(2,cnt);int sum=s[r]-s[pre];if(maxx<sum){maxx=sum;int tp=work(r+1);res=tp;}cnt++;pre=r;}System.out.print(res);}
}
2、双指针
思路:
枚举每一层的起点和层数
计算每一层的总和 取最大值
import java.util.*;class Main
{static int N=100010;public static void main(String[] args){Scanner sc=new Scanner(System.in);int n=sc.nextInt();int[] a=new int[N];for(int i=1;i<=n;i++) a[i]=sc.nextInt();long maxx=-0x3f3f3f3f;int res=0;for(int i=1,d=1;i<=n;i*=2,d++) //i为起点下标 d为层数{long sum=0;for(int j=i;j<i+(1<<d-1)&&j<=n;j++) sum+=a[j]; //1<<d指将1位二进制数向左移d位 即2^dif(sum>maxx){maxx=sum;res=d;}}System.out.print(res);}
}
相关文章:
【蓝桥杯集训4】双指针专题(6 / 6)
目录 3768. 字符串删减 - 滑动窗口ac 799. 最长连续不重复子序列 - 滑动窗口 800. 数组元素的目标和 - 二分ac 2816. 判断子序列 - 双指针 1238. 日志统计 - 滑动窗口 1240. 完全二叉树的权值 - 双指针 1、前缀和 - 通过了 5/12个数据 2、双指针 3768. 字符串删减 -…...
文件流,gzip解压,压缩
目录 文件画布 写入 (空文件Foutnew File(Parent,entry.getName());)FileOutputStream outnew FileOutputStream(Fout);BufferedOutputStream Boutnew BufferedOutputStream(out);其他流量基于基础包装文件--文件流---字节流 顺序pbf一般是形成后再压缩目…...
在线开会,来开开圆桌会议吧~
圆桌会议应用场景:适合内部培训、部门会议亦或是头脑风暴等较为轻松的场景,有兴趣的朋友可以联系我来测试哦~~ 上图: 图:圆桌会议应用截图 在圆桌布局之下,企业可以将每一位参会者和座位绑定,1:1模拟线下圆…...
使用营销自动化的 7 大主要优势
对于大多数企业家来说,自动化已成为在数字时代简化业务的必要条件。那么,您可以采取哪些步骤来实施营销自动化呢? 1. 社交媒体整合 拥有吸引人的社交媒体形象是成功的先决条件。您不可能完成所有社交媒体营销任务,使用自动化软件&…...
【图像分类】基于PyTorch搭建GRU实现MNIST手写数字体识别(单/双向GRU,附完整代码和数据集)
写在前面: 首先感谢兄弟们的关注和订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。 在https://blog.csdn.net/AugustMe/article/details/128969138文章中,我们使用了基于PyTorch搭建LSTM实现MNIST手…...
day14_oop_抽象_接口
今日内容 上课同步视频:CuteN饕餮的个人空间_哔哩哔哩_bilibili 同步笔记沐沐霸的博客_CSDN博客-Java2301 零、 复习昨日 一、作业 二、抽象 三、接口 零、 复习昨日 多态的好处: 扩展性强.加入新的功能,不需要改动代码降低代码耦合度(解耦合或者松耦合) 一、抽象类 1.1 抽象类…...
模式识别 | MATLAB实现DNN深度神经网络模式分类识别
分类预测 | MATLAB实现DNN全连接神经网络多特征分类预测 目录 分类预测 | MATLAB实现DNN全连接神经网络多特征分类预测基本介绍任务描述程序设计参考资料基本介绍 DNN的结构不固定,一般神经网络包括输入层、隐藏层和输出层,一个DNN结构只有一个输入层,一个输出层,输入层和输…...
【C++】类和对象三大特性--继承
文章目录1.继承的概念及定义1.1继承的概念1.2 继承定义1.2.1定义格式1.2.2继承关系和访问限定符1.2.3继承基类成员访问方式的变化2.基类和派生类对象赋值转换3.继承中的作用域4.派生类的默认成员函数5.继承与友元6. 继承与静态成员7.复杂的菱形继承及菱形虚拟继承虚拟继承解决数…...
MySQL的存储引擎
目录 一.概念 二.分类 操作 修改默认存储引擎 一.概念 数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能。现在许多不…...
工程项目管理系统源码-简洁+好用+全面-工程项目管理系统
工程项目管理系统是指从事工程项目管理的企业(以下简称工程项目管理企业)受业主委托,按照合同约定,代表业主对工程项目的组织实施进行全过程或若干阶段的管理和服务。 系统定义 工程项目管理企业不直接与该工程项目的总承…...
什么是STAR原则?
文章目录📋前言🔥省流版🎯什么是STAR原则🎯进行过程📋前言 对于大部分还在学习阶段的学生们来说,可能并不了解这个原则的含义,这里的star并不是指英文单词星星。这个原则我也是前段时间才认识到…...
前置知识-初值问题、显式隐式龙格库塔方法、Butcher阵列
1.1.4 龙格一库塔法 将向前欧拉法写成式 (1-37) 的形式, 可以看出它实际上利用了 f ( x , u ) f(x, u) f(x,u) 在 x n...
PythonWeb Django PostgreSQL创建Web项目(二)
安装数据库PostgreSQL并创建数据库 我第一次尝试使用PostgreSQL数据库,why?我喜欢它提供的丰富的数据类型,例如货币类型、枚举类型、几何类型(点、直线、线段、矩形等等)、网络地址类型、文本搜索类型、XML类型JSON类型等等,非常…...
Python学习笔记:使用字符串
使用字符串 使用字符串格式:精简版 百分号 % # 指定要设置其格式的值时,可使用单个值(如字符串或数字),可使用元组(如果要设置多个值得格式),还可使用字典 >>> format …...
echarts饼图封装
1. 组件 <template> <div :id"id" class"main" :style"{ width: width, height: height }" :ref"id" ></div> </template> <script> import * as echarts from "echarts"; export default { …...
Web3.0 教学基础一
目录 什么是web3.0 Web 1.0 概念 Web 2.0 概念 Web 3.0 概念 Web 3.0 的优势 什么是DAPP 什么是web3.0 在了解web3.0之前我们需要了解下前面的web1.0与web2.0。 Web 1.0 概念 Web1.0是万维网最初的版本,而静态网站则被认为是全网Web 1.0的起源,用…...
body使用渐变色无效的原因之一:html没有设置高度
直接在css文件中对body设置渐变色: body {height: 100%;background: -webkit-linear-gradient(120deg, #a1c4fd 0%, #c2e9fb 100%);background: -moz-linear-gradient(120deg, #a1c4fd 0%, #c2e9fb 100%);background: -o-linear-gradient(120deg, #a1c4fd 0%, #c2e…...
Python3 函数实例及演示
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 函数能提高应用的模块性,和代码的重复利用率。我们已经知道Python提供了许多内建函数,比如print()。但也可以自己创建函数,这被叫做用户…...
HTB打靶(Active Directory 101 Multimaster)
Nmap扫描 Starting Nmap 7.93 ( https://nmap.org ) at 2023-02-08 02:52 EST Stats: 0:00:51 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth Scan SYN Stealth Scan Timing: About 55.85% done; ETC: 02:54 (0:00:40 remaining) Nmap scan report for 10.129…...
漏洞预警|Apache Sling JCR Base 存在JNDI注入漏洞
棱镜七彩安全预警 近日网上有关于开源项目Apache Sling JCR Base 存在JNDI注入漏洞,棱镜七彩威胁情报团队第一时间探测到,经分析研判,向全社会发起开源漏洞预警公告,提醒相关安全团队及时响应。 项目介绍 Apache Sling是一个基于…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
C++.OpenGL (20/64)混合(Blending)
混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...
协议转换利器,profinet转ethercat网关的两大派系,各有千秋
随着工业以太网的发展,其高效、便捷、协议开放、易于冗余等诸多优点,被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口,具有实时性、开放性,使用TCP/IP和IT标准,符合基于工业以太网的…...



