02 2021 档案

摘要:树上的BFS与DFS bfs与之前学习的没有什么不同,主要就是对树的层序遍历 dfs是比较抽象的,一般比较难想而且时间复杂度相对于bfs来说会更高。 例题: 1. 二叉树的锯齿形层序遍历 https://leetcode-cn.com/problems/binary-tree-zigzag-leve 阅读全文
posted @ 2021-02-06 14:16 voids5 阅读(150) 评论(0) 推荐(0)
摘要:链表翻转 题目要求:翻转链表中某一段的节点 思路:建立一个新节点dummy,新节点的next节点指向原来的头节点,这样就算原来的头节点变动了,我们还可以使用dummy->next来获得新链表的头节点 建立一个指针pre,pre节点始终指向要翻转的那段链表的前驱节点,然后令cur=pre->next始 阅读全文
posted @ 2021-02-05 14:55 voids5 阅读(117) 评论(0) 推荐(0)
摘要:可以用来处理数组中的数值限定在一定的区间的问题。 例题: #1.找到所有数组中消失的数字 (https://leetcode-cn.com/problems/find-all-numbers-disappeared-in-an-array/) 给定一个范围在 1 ≤ a[i] ≤ n ( n = 数 阅读全文
posted @ 2021-02-04 13:41 voids5 阅读(297) 评论(0) 推荐(0)
摘要:区间合并总结 区间合并总体来说还是比较简单的,通过模拟基本都能做出来,不过要注意下标越界的情况。 例题: 1.合并区间(https://leetcode-cn.com/problems/merge-intervals/) 以数组 intervals 表示若干个区间的集合,其中单个区间为 interv 阅读全文
posted @ 2021-02-03 13:41 voids5 阅读(161) 评论(0) 推荐(0)
摘要:#快慢指针可用于判断链表中是否有环。 Floyd判圈算法(龟兔赛跑算法) 假设乌龟和兔子在链表上跑步,兔子跑得快,乌龟跑的慢,如果链表中没有环,那么兔子将会一直在乌龟前面,直到终点;反之,如果链表中存在环,那么兔子一定会和乌龟再次相遇。 我们可以设定两个指针,快指针fast指代兔子,慢指针slow指 阅读全文
posted @ 2021-02-02 13:09 voids5 阅读(157) 评论(0) 推荐(0)
摘要:这个算法可以用于解决从一个有序数值数组中从数组元素中取两个值,从而求得某个或某些个最值的情况 通常是算法思路都是同时在数组的第一位与最后一位放置一个指针,用这两个指针所在的值计算题目所需的结果, 根据当前计算结果与之前历史结果的比较,判断两个指针如何向内移动(是否移动,移动多少),两个指针重叠标志着 阅读全文
posted @ 2021-02-01 17:48 voids5 阅读(84) 评论(0) 推荐(0)