![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
双指针
virgilshi
和舒适区说白白(ง'-')ง
展开
-
[LeetCode] 四数和值问题类型总结(哈希、双指针)
写在前面四数问题以及三数和值问题一般用Brute Force OJ会TLE,面试过程中写出BF算法也不是面试官想看到的,那么我们可以思考一下四数和值问题本质是在考察什么,表面是和值问题,本质是查找问题,对于查找,一般我们会联想到下面几点知识,i.e.,思考方向:查找问题最佳时间复杂度为二分算法对应的O(lgn),而二原创 2020-07-26 12:17:41 · 392 阅读 · 0 评论 -
[LeetCode] 双指针题总结
写在前面双指针题的显著特点是,题面有相向运行或者同向运动的影子,什么意思呢?比如从序列两头向中间解题(相向,这类型很少出现)和从一端向另一端解题(同向,这类题比较多),往往双指针的题不难,但是若想理清思路,建议多画图。283. 移动零(双指针)给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。解题思路: 维护两个指针,i指向0,j指向非0,在非0元素前有多少个0,就至少要移动多少次,i.e.,在前面找到一个0元素,这用后面非0元素一步填充,这样能使移动步数原创 2020-07-10 19:52:16 · 203 阅读 · 0 评论 -
[LeetCode] 3. 无重复字符的最长子串(双指针)
3. 无重复字符的最长子串给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。解题思路: 一般看到字符串子串问题,我们会想到用双指针解,看到字符串子序列问题,会想到用动态规划解,i.e.,子串问题双指针,子序列问题动态规划。 此题也不例外,利用双指针解,很快即可解题,主要的思路是,维护一个hashmap统计双指针页框内字符的频数,双指针(i和j)初始化状态均位于左侧,每次指针j向右移动一个位置,然后check这个位置的字符在页框内出现的频数超过1,若是则通过右移指针i使得频数降为1,双指针原创 2020-06-10 18:50:13 · 540 阅读 · 1 评论