一、 动态维护区间
技巧题 : 352. 将数据流变为多个不相交区间
https://leetcode-cn.com/problems/data-stream-as-disjoint-intervals/
技巧应用:
5497. 查找大小为 M 的最新分组
https://leetcode-cn.com/problems/find-latest-group-of-size-m/
二、判断是否重复的子字符串
技巧题 : 459. 重复的子字符串
技巧应用:
471. 编码最短长度的字符串
三、 树的性质
a.节点数量与边的个数关系
1. 一颗树有N个节点, 那么它有N - 1条边。
如果一棵树, 多出了一条边, N个节点有N条边, 请问如何找出这条边? leetcode 685, 冗余连接
性质: 树中的每个节点都有一个父节点,除了根节点没有父节点。
在多了一条附加的边之后,可能有以下两种情况:
- 附加的边指向根节点,则包括根节点在内的每个节点都有一个父节点,所有节点入度为1,此时图中一定有环路;
- 附加的边指向非根节点,则恰好有一个节点(即被附加的边指向的节点)有两个父节点,存在该节点入度为2,此时图中可能有环路也可能没有环路。
针对情况1, 所有的边的入度均为1, 即有一条边指向跟节点, 找到指向根节点的边就是答案
针对情况2, 存在一个节点入度为2, 找到这两条边A和B, 其他边先构成一个并查集,答案要么是A, 要么是B
把A加入集合, 如果构成环, A就是答案, 否则是B