【 NO.1 使数组中所有元素都等于零】
4 P; O; P$ D5 [& ]- r 解题思路 答案即不同元素的个数。 代码展示
. ^# m) l4 w; V' N) P
【 NO.2 分组的最大数量】+ w+ _5 |* ^& R1 X8 U
解题思路 排序后,第 1 个学生自己一组,然后 2 个学生一组,然后 3 个学生一组... 即第 i 组有 i 个学生。 等差数列求和,(i + 1) * i / 2 <= n, 解方程即可。 代码展示
【 NO.3 找到离给定两个节点最近的节点】
/ f: y5 o, [8 V 解题思路 用 BFS 求最短路即可。 代码展示
' |; n( u$ [$ D. u2 K& f
$ c, T* E* R/ B' Y# z【 NO.4 图中的最长环】$ b4 ~) `6 L* u4 R0 C
- x: }5 [5 E, H" k# Q2 h解题思路 类似 Tarjan 缩点算法,利用时间戳找环。 每访问一个新的点,时间戳自增,然后尝试从这个节点出发,观察它能访问到的历史时间戳,做减法得到环的长度。 代码展示 " U$ b, Y1 y. {# K3 b2 ^* P
6 c a9 A/ A' A$ Y/ h |