
双指针
FrostMonarch
这个作者很懒,什么都没留下…
展开
-
leetcode 最小覆盖子串(双指针)
76. 最小覆盖子串给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字符的最小子串。示例:输入: S = "ADOBECODEBANC", T = "ABC"输出: "BANC"说明:如果 S 中不存这样的子串,则返回空字符串""。 如果 S 中存在这样的子串,我们保证它是唯一的答案解题思路:这题可以使用双指针解决,有点类似于找最长公共串。我们可以用左指针lf,右指针rg。我们不断拓展右指针,直到[lf,rg]的串满足要求,我们认为可以用lf指针.原创 2020-05-10 10:40:23 · 280 阅读 · 0 评论 -
codeforces 1333C - Eugene and an array (贡献法,前缀和,双指针)
题目大意:我们称一个子串是好的,当且仅当里面的连续子串不能求和为0。 现在给我们一个串an,问我们里面有多少个好的连续子串。len(an)<=1e5.解题思路:首先,我们要用一种贡献法的思维。更具体地,我们发现,假如在an中部分区间[l,r]求和为0,以[l,r]为基础的向外拓张的串都是不好的串,例如[l-1,r] , [l,r+1]等等这种,所以我们的好的串必定不能包含[l...原创 2020-04-11 16:44:54 · 300 阅读 · 0 评论 -
洛谷 P1102 A-B数对 (双指针)
题目大意:在An中,我们找出Ai - Aj ==c的所有数对的个数。n<=1e6解题思路:方法很多这里用一个巧妙的双指针完成,这种方法应该是代码量最短的。首先,我们可以对A从小到大进行排序。接着我们枚举指针j,找出Aj - Ai2>=c中的最靠右的位置,同时找出Aj - Ai1<=c中的最靠左的位置,当Aj - Ai1 ==c时,两个的交集的个数就是当前枚举j...原创 2019-12-15 22:21:17 · 491 阅读 · 0 评论