
双指针
小王子y
互关啊!!
展开
-
第九届蓝桥杯省赛C++B组 日志统计(双指针滑动窗口巧妙)
小明维护着一个程序员论坛。现在他收集了一份”点赞”日志,日志共有 NN 行。 其中每一行的格式是: ts id 表示在 ts 时刻编号 id 的帖子收到一个”赞”。 现在小明想统计有哪些帖子曾经是”热帖”。 如果一个帖子曾在任意一个长度为 DD 的时间段内收到不少于 KK 个赞,小明就认为这个帖子曾是”热帖”。 具体来说,如果存在某个时刻 TT 满足该帖在 [T,T+D) 这段时间内(注意是左闭右开区间)收到不少于 K 个赞,该帖就曾是”热帖”。 给定日志,请你帮助小明统计出所有曾是”热帖”的帖子编号。 输原创 2020-12-21 16:10:13 · 222 阅读 · 0 评论 -
判断子序列(双指针做法)
给定一个长度为 nn 的整数序列 a1,a2,…,ana1,a2,…,an 以及一个长度为 mm 的整数序列 b1,b2,…,bmb1,b2,…,bm。 请你判断 aa 序列是否为 bb 序列的子序列。 子序列指序列的一部分项按原有次序排列而得的序列,例如序列 {a1,a3,a5}{a1,a3,a5} 是序列 {a1,a2,a3,a4,a5}{a1,a2,a3,a4,a5} 的一个子序列。 输入格式 第一行包含两个整数 n,mn,m。 第二行包含 nn 个整数,表示 a1,a2,…,ana1,a2,…,an原创 2020-12-17 23:39:05 · 600 阅读 · 0 评论 -
最长连续不重复子序列(注意连续!双指针做法详解)
给定一个长度为n的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。 输入格式 第一行包含整数n。 第二行包含n个整数(均在0~100000范围内),表示整数序列。 输出格式 共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。 数据范围 1≤n≤1000001≤n≤100000 输入样例: 5 1 2 2 3 5 输出样例: 3 核心思路: 遍历数组a中的每一个元素a[i], 对于每一个i,找到j使得双指针[j, i]维护的 是以a[i]结尾的最长连续不重复子序列,长度为i -原创 2020-11-14 23:24:39 · 979 阅读 · 0 评论 -
数组元素的目标和(双指针模板题)
给定两个升序排序的有序数组A和B,以及一个目标值x。数组下标从0开始。 请你求出满足A[i] + B[j] = x的数对(i, j)。 数据保证有唯一解。 输入格式 第一行包含三个整数n,m,x,分别表示A的长度,B的长度以及目标值x。 第二行包含n个整数,表示数组A。 第三行包含m个整数,表示数组B。 输出格式 共一行,包含两个整数 i 和 j。 数据范围 数组长度不超过100000。 同一数组内元素各不相同。 1≤数组元素≤1091≤数组元素≤109 输入样例: 4 5 6 1 2 4 7 3 4 6原创 2020-11-14 22:35:20 · 447 阅读 · 0 评论