滑动窗口/双指针
leetcode题目分类---滑动窗口或双指针
m0_38142029
这个作者很懒,什么都没留下…
展开
-
[二分查找 双指针 位运算] 287.寻找重复数(值域二分、位运算、快慢指针找环入口)
[二分查找 双指针 位运算] 287.寻找重复数(值域二分、位运算、快慢指针找环入口)287.寻找重复数题目分析思路1:值域二分(非常规二分,时间换空间,O(NlogN))思路2:位运算(O(N))实现遇到的问题:思路3:快慢指针法(数组 → 链表,环入口 = 重复数,O(N))287.寻找重复数题目链接:https://leetcode-cn.com/problems/find-the-duplicate-number/分类:二分查找(对数组元素的值域做二分寻找重复数值)位运算(统计数组所有原创 2020-10-11 23:41:06 · 271 阅读 · 0 评论 -
[双指针] 283. 移动零(双指针+两次遍历 → 一次遍历)
[双指针] 283. 移动零(双指针+两次遍历 → 一次遍历)283. 移动零题目分析思路1:双指针 + 两次遍历(O(2N))思路2:双指针 + 一次遍历(O(N))283. 移动零题目链接:https://leetcode-cn.com/problems/move-zeroes/分类:双指针:两次遍历:p1寻找非零元素,p2拿p1找到的非零元素覆盖零元素(思路1);一次遍历:快排思想,零元素作为枢轴,非零元素放到左边,零元素放到右边(思路2)。题目分析题目要求:在原数组上原创 2020-10-11 14:11:06 · 231 阅读 · 0 评论 -
[滑动窗口+双向队列的应用] 239. 滑动窗口最大值(暴力解法 → 单调队列法)
[滑动窗口+双向队列的应用] 239. 滑动窗口最大值(暴力解法 → 单调队列法)239. 滑动窗口最大值思路1:暴力解思路2:单调队列法(双向队列模拟单调队列)239. 滑动窗口最大值题目链接:https://leetcode-cn.com/problems/sliding-window-maximum/分类:滑动窗口(两种设置左右边界初始值的方法、求滑动窗口内最大值:暴力解法 → 单调队列法)单调队列(基于双向队列,队尾到队首非递减存放窗口内可能成为max的元素,队首 == 当前窗口max原创 2020-10-06 00:06:10 · 366 阅读 · 0 评论 -
[滑动窗口 二分查找] 209. 长度最小的子数组(暴力解 → 滑动窗口法 → 二分查找法)
[滑动窗口 二分查找] 209. 长度最小的子数组(暴力解 → 滑动窗口法 → 二分查找法)209. 长度最小的子数组思路1:暴力解(O(N^2))思路2:滑动窗口法(O(N),推荐)算法流程思路3:二分查找 (NlogN,思路转变)209. 长度最小的子数组题目链接:https://leetcode-cn.com/problems/minimum-size-subarray-sum/分类:数组(无序数组)滑动窗口(思路2:O(N) 寻找连续子数组)二分查找(思路3:用 无序数组nums 构原创 2020-09-22 19:50:04 · 162 阅读 · 0 评论 -
[数学规律] 202. 快乐数(寻找数学规律、判断是否无限循环:Set、快慢指针法)
[数学规律] 202. 快乐数(寻找数学规律、判断是否无限循环:Set、快慢指针法)202. 快乐数题目分析:(难度不止简单)思路1:set 暴力解法如何判断一个数是否陷入无限循环?实现代码思路2:快慢指针法(模仿链表找环,更巧妙)如何把链表的快慢指针法应用到这题上?实现代码202. 快乐数题目链接:https://leetcode-cn.com/problems/happy-number/关键点(分类):数学规律、问题转化(找快乐数 → 判断是否无限循环)判断是否无限循环:HashSet、快慢原创 2020-09-20 17:53:16 · 1157 阅读 · 0 评论 -
[链表 双指针] 141. 环形链表(快慢指针找环)142. 环形链表 II(双指针求倒数第k个节点)143. 重排链表(快慢指针找中位点+原地逆序链表)
[链表 双指针] 141. 142. 环形链表 I II(快慢指针找环、双指针求倒数第k个节点)141. 环形链表(快慢指针判断是否有环,不需要找环的起点)思路1:map存放链表节点 (空间复杂度O(N))思路2:双指针法(空间复杂度为O(1))142. 环形链表 II (寻找找出环的入口节点)思路1:快慢指针(找环)+同步指针(思路同找倒数第k个节点)141. 环形链表(快慢指针判断是否有环,不需要找环的起点)题目链接:https://leetcode-cn.com/problems/linked-l原创 2020-10-31 13:33:04 · 138 阅读 · 0 评论 -
[单调栈 ]42.接雨水 84.柱状图中最大的矩形(暴力法 -> 单调栈)
[单调栈 leetcode]42.接雨水 84.柱状图中最大的矩形(暴力法 -> 单调栈)42.接雨水思路1:暴力解(所有解法的基本思想,很关键)思路2:动态规划思路3:双指针法(动态规划的空间优化,最佳解法)思路4:单调栈(按行计算 + 算法原理改进,推荐解法)分析如何用栈来实现这一过程?84. 柱状图中最大的矩形题目分析思路1:暴力解思路2:动态规划(没找到可行方法)思路3:单调栈 + 哨兵技巧实现代码(更好理解)代码简化42.接雨水题目链接:42.接雨水分类:数组、栈(单调栈)、动态规划、原创 2020-10-18 13:11:45 · 192 阅读 · 1 评论 -
[链表]82.83. 删除排序链表中的重复元素 I II(三指针法)
[链表 leetcode]82. 删除排序链表中的重复元素 II(链表问题、三指针法)82. 删除排序链表中的重复元素 II(滑动窗口、哈希表)思路:三指针法算法设计算法流程实现时遇到的问题:1、边界条件的考虑2、pre=null时的收尾处理(易遗漏)实现代码82. 删除排序链表中的重复元素 II(滑动窗口、哈希表)题目链接:82. 删除排序链表中的重复元素 II分类:链表、三指针法思路:三指针法算法设计设置一个pre指向head的前一个节点,last作为不重复链表的最后一个节点,head作为原创 2020-10-17 15:49:50 · 150 阅读 · 0 评论 -
[滑动窗口]76. 最小覆盖子串(滑动窗口、哈希表)
[滑动窗口 leetcode]76. 最小覆盖子串(滑动窗口、哈希表)第76题.最小覆盖子串(滑动窗口、哈希表)思路:滑动窗口关键问题:如何判断窗口内字符串包含t所有字符?(check函数的编写)知识点:map的遍历(重点、生疏点)实现代码思路1的优化(修改调用check的时机、字符串预处理)分析优化措施1:修改调用check的时机优化措施2:预处理字符串s实现代码:第76题.最小覆盖子串(滑动窗口、哈希表)题目链接:76. 最小覆盖子串分类:字符串、滑动窗口、哈希表思路:滑动窗口设置滑动窗口左原创 2020-10-20 11:23:16 · 114 阅读 · 0 评论