双指针算法
罚时大师月色
努力让更多小白和我一起共同进步
展开
-
AcWing 1238. 日志统计
AcWing 1238. 日志统计小明维护着一个程序员论坛。现在他收集了一份”点赞”日志,日志共有 N 行。其中每一行的格式是:ts id表示在 ts 时刻编号 id 的帖子收到一个”赞”。现在小明想统计有哪些帖子曾经是”热帖”。如果一个帖子曾在任意一个长度为 D 的时间段内收到不少于 K 个赞,小明就认为这个帖子曾是”热帖”。具体来说,如果存在某个时刻 T 满足该帖在 [T,T+D) 这段时间内(注意是左闭右开区间)收到不少于 K 个赞,该帖就曾是”热帖”。给定日志,请你帮助小明统计出所有原创 2021-03-04 18:57:25 · 216 阅读 · 1 评论 -
Acwing 2816. 判断子序列
输入样例:3 51 3 51 2 3 4 5输出样例:Yes这道题很明显不难,就用那个双指针模板就好了。#include<iostream>using namespace std;const int N=1e5+10;int a[N],b[N];int main(void){ int n,m; cin>>n>>m; for(int i=1;i<=n;i++) cin>>a[i]; for(in.原创 2021-02-05 16:58:28 · 150 阅读 · 0 评论 -
AcWing 800. 数组元素的目标和
哈哈哈,又到了拿手的双指针时间了,代码以及思路都非常非常简单!!!代码如下#include<iostream>using namespace std;const int N=1e5+10;int a[N],b[N];int main(void){ int n,m,x; cin>>n>>m>>x; for(int i=0;i<n;i++) cin>>a[i]; for(int i=0;i<m.原创 2021-02-05 16:40:54 · 102 阅读 · 0 评论 -
AcWing 799. 最长连续不重复子序列
这道题我刚开始想用哈希。然后看了老师的算法,还是觉得老师的代码更简单。原理也很简单,用一个s[i]数组标记,然后如果s[i]>1时,说明出现了重复的数字,我们就用j往后遍历,直到把这个数字标记解掉。代码如下#include<iostream>#include<algorithm>using namespace std;const int N=1e5+10;int a[N],b[N];int main(void){ int n,res=0; ci.原创 2021-02-05 16:28:39 · 971 阅读 · 0 评论