- 博客(8)
- 收藏
- 关注
原创 Leetcode Hot 100系列:最小覆盖子串(Q76) 滑动窗口
滑动窗口类型的问题中都会有两个指针,一个用于「延伸」现有窗口的 r 指针,和一个用于「收缩」窗口的 l 指针。我们在 s 上滑动窗口,通过移动 r 指针不断扩张窗口。当窗口包含 t 全部所需的字符后,如果能收缩,我们就收缩窗口直到得到最小窗口。t=O83At=O83At=O83A长度最小的子数组https://leetcode.cn/problems/minimum-size-subarray-sum/
2024-11-05 17:23:02
597
2
原创 深度优先搜索(DFS)遍历框架、思路总结
显而易见的如果我们遍历到网格中的边界格子时会出现再向外遍历就越界的情况,这就需要我们在遍历的过程中加一步判断,判断要遍历的下一个格子是否还在网格范围内。此外,由于网格的四个方向的特殊性质,有可能会出现无线循环遍历的情况,即遍历过的节点经过一圈遍历又回到当前节点,因为网格不像二叉树,只有向下的左右两个子树,而网格会出现上下左右转圈的无解循环。DFS在定义上其实就是一个二叉树的先序遍历,从根节点开始不断遍历当前节点的左子树、右子树,当碰到空子树的时候及时返回,并不断递归的过程。
2024-11-03 12:53:29
1355
原创 Leetcode Hot 100系列:合并区间(Q56)
拿到按左端点排序后的区间集合后,现在的问题就是如何进行合并。思路是定左扩右,因为区间是按左端点排好序的,所以我们可以从最小的左端点开始,保持左端点不懂,依次看后面的区间,此时分三种情况(设当前左区间为l,右区间为r;题目给出若干个区间,要求对区间重叠的部分进行合并,但是需要注意的是区间并不是顺序排好的,需要我们手动对所给区间集合排序。即新区间左端点在当前区间范围内,且新区间的右端点在当前区间之外,需要将r修改(扩大)为n。即新区间左端点在当前区间范围内,且新区间的右端点在当前区间之内,不需要更改。
2024-11-02 17:46:44
710
1
原创 Leetcode Hot 100系列:滑动窗口最大值(Q239)
要明白本题其实就是在维护一个单调队列,因为要找的就是滑动窗口的最大值,所以我们其实只需要做两件事情,一个是维护队列中的元素都在滑动窗口内,一个是队列中的元素要按从大到小排列,因为小的元素在窗口移动的过程中永远不会成为最大值。
2024-11-02 11:28:05
533
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅