![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
双指针
tomjobs
别慌,慌也没用
展开
-
LeetCode 30. 串联所有单词的子串(哈希+双指针)
给定一个字符串 s 和一些 长度相同 的单词 words 。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。注意子串要与 words 中的单词完全匹配,中间不能有其他字符 ,但不需要考虑 words 中单词串联的顺序。示例 1:输入:s = “barfoothefoobarman”, words = [“foo”,“bar”]输出:[0,9]解释:从索引 0 和 9 开始的子串分别是 “barfoo” 和 “foobar” 。输出的顺序不重要, [9,0] 也是有效答案原创 2021-10-23 00:39:46 · 226 阅读 · 0 评论 -
LeetCode 76. 最小覆盖子串(双指针)
给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “” 。注意:对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。如果 s 中存在这样的子串,我们保证它是唯一的答案。示例 1:输入:s = “ADOBECODEBANC”, t = “ABC”输出:“BANC”示例 2:输入:s = “a”, t = “a”输出:“a”示例 3:输入: s = “a”, t = “原创 2021-10-13 21:21:33 · 227 阅读 · 0 评论 -
LeetCode 1438. 绝对差不超过限制的最长连续子数组(滑动窗口,单调队列/map,set)
思路:解法1和解法2参考了leetcode题解,主要是参考码风。解法3是博主自己写的,效率相对不高。解法1:双指针维护滑动窗口,使用两个单调队列记录当前区间最大值最小值双指针维护这个窗口,要判断其是否合理需要记录最大值最小值,可以想到用单调队列。但是如何用一个双指针维护两个队列呢?窗口扩大好办,就是一直右移右指针。而窗口缩小的时候,实际上只需要考虑极值,要么是删掉最大值单调队列的头指针,要么是删掉最小值单调队列的头指针。所以左移左指针的时候,只要其中一个单调队列队首和左指针数字相同,那就弹出。.原创 2021-02-23 14:49:37 · 197 阅读 · 0 评论 -
LeetCode 992. K 个不同整数的子数组(双指针,前缀差)
给定一个正整数数组 A,如果 A 的某个子数组中不同整数的个数恰好为 K,则称 A 的这个连续、不一定不同的子数组为好子数组。(例如,[1,2,3,1,2] 中有 3 个不同的整数:1,2,以及 3。)返回 A 中好子数组的数目。示例 1:输入:A = [1,2,1,2,3], K = 2输出:7解释:恰好由 2 个不同整数组成的子数组:[1,2], [2,1], [1,2], [2,3], [1,2,1], [2,1,2], [1,2,1,2].示例 2:输入:A = [1,2,1,3,4原创 2021-02-11 00:20:57 · 242 阅读 · 0 评论 -
LeetCode 632. 最小区间(双指针)
你有 k 个 非递减排列 的整数列表。找到一个 最小 区间,使得 k 个列表中的每个列表至少有一个数包含在其中。我们定义如果 b-a < d-c 或者在 b-a == d-c 时 a < c,则区间 [a,b] 比 [c,d] 小。示例 1:输入:nums = [[4,10,15,24,26], [0,9,12,20], [5,18,22,30]]输出:[20,24]解释:列表 1:[4, 10, 15, 24, 26],24 在区间 [20,24] 中。列表 2:[0, 9, 1原创 2021-02-05 11:45:46 · 178 阅读 · 0 评论 -
LeetCode 19. 删除链表的倒数第N个节点(快慢指针)
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?思路:定义两个指针,先让快指针走nnn步,然后两个指针一起走直到快指针走到终点。/** * Definition for singly-linked list. * struct List原创 2021-01-18 15:08:17 · 157 阅读 · 0 评论 -
LeetCode 18. 四数之和(双指针)
给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集合为:[[-1, 0, 0, 1],[-2, -1, 1, 2],[-2, 0, 0, 2]]思路:等同于三原创 2021-01-07 10:49:49 · 126 阅读 · 0 评论 -
LeetCode 15. 三数之和(双指针)
给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-1, -1, 2]]10天没敲代码,码力退化到这种地步了吗。。。思路:双指针,先将数组排个序,然后枚举a,b,ca,b,ca,b,c大的那个数,剩下两个数在数组中原创 2021-01-07 10:17:36 · 136 阅读 · 0 评论 -
GYM L - School Reunion Gym - 101864L(双指针)
题意:第iii个人停留的时间为[l,r][l,r][l,r]。求你最少要停留的连续时间为多少,保证能遇到至少ppp个人。思路:对于第iii个人的停留时间[l,r][l,r][l,r],实际上就是差分,使得lll的权值加1,r+1r+1r+1的权值为-1。二分这个连续时间midmidmid,然后看连续midmidmid长度是否存在大于ppp的值。但是有点小问题,区间范围为1e9,不能forforfor一遍搞。但是贪心的想,你停留的时间段的右端点,一定是一个人停留时间的左端点;你停留时间段的左端点,原创 2020-11-19 14:50:20 · 141 阅读 · 0 评论 -
J - Distance ZOJ - 4003(双指针)
题意:两个向量距离为 ∑∣a[i]−b[i]∣p∑|a[i]-b[i]|^p∑∣a[i]−b[i]∣p。给你两个数组,两个数组分别得到一个子数组作为向量(长度得相同),求多少个子向量对,满足距离不大于v。思路:枚举两个子数组的起点差距,然后双指针维护。因为一旦[l1,r1]−>[l2,r2][l1,r1] -> [l2,r2][l1,r1]−>[l2,r2]这个区间满足了,那么[l11,r1]−>[l22,r2],满足l1<l11≤r1,l2<l22≤r2[l.原创 2020-10-14 14:31:59 · 128 阅读 · 0 评论 -
牛客多校第九场 Groundhog Looking Dowdy(双指针,卡常)
题意:每天有一些衣服和其价格。一共n天,你可以从其中选m天,每天指定一个衣服。要求m天中指定衣服的最大值与最小值差最小。思路:特别卡常。只能将所有衣服按照价格和日期存下来,再从小到大排序,算出每个衣服第一个离他m天数的衣服,这就对应最小价格。这个过程可以双指针维护。#include <cstdio>#include <cstring>#include <algorithm>#include <map>#include <vector.原创 2020-08-12 19:07:34 · 158 阅读 · 0 评论 -
Codeforces 1379 D. New Passenger Trams(双指针)
There are many freight trains departing from Kirnes planet every day. One day on that planet consists of ℎ hours, and each hour consists of ???? minutes, where ???? is an even number. Currently, there are ???? freight trains, and they depart every day at t原创 2020-07-21 20:04:45 · 442 阅读 · 0 评论 -
Subsequence POJ - 3061(双指针)
A sequence of N positive integers (10 < N < 100 000), each of them less than or equal 10000, and a positive integer S (S < 100 000 000) are given. Write a program to find the minimal length of the subsequence of consecutive elements of the sequenc原创 2020-07-17 23:55:38 · 294 阅读 · 0 评论 -
Jessica‘s Reading Problem POJ - 3320(双指针)
Jessica’s a very lovely girl wooed by lots of boys. Recently she has a problem. The final exam is coming, yet she has spent little time on it. If she wants to pass it, she has to master all ideas included in a very thick text book. The author of that text原创 2020-07-17 23:54:35 · 204 阅读 · 0 评论