【 NO.1 使数组中所有元素都等于零】! Z# t! k# A3 l! O' L( C) P
解题思路 答案即不同元素的个数。 代码展示 2 m% r+ K l, v$ h- @
【 NO.2 分组的最大数量】1 G0 U4 [) R4 t( }; i
解题思路 排序后,第 1 个学生自己一组,然后 2 个学生一组,然后 3 个学生一组... 即第 i 组有 i 个学生。 等差数列求和,(i + 1) * i / 2 <= n, 解方程即可。 代码展示
【 NO.3 找到离给定两个节点最近的节点】
/ |. H ~8 E- `4 w* o5 Y, j2 h+ f 解题思路 用 BFS 求最短路即可。 代码展示
+ ]1 s6 f8 c/ }# w4 U2 h; y% e- k7 K, p- p2 q1 w3 `
【 NO.4 图中的最长环】7 u1 U4 F- _9 ~9 N& W) k
9 [* J0 r5 w8 `% T/ a解题思路 类似 Tarjan 缩点算法,利用时间戳找环。 每访问一个新的点,时间戳自增,然后尝试从这个节点出发,观察它能访问到的历史时间戳,做减法得到环的长度。 代码展示
6 {" q! f$ U) x3 a5 [5 j+ U3 W) y, G2 X& I& v; ?2 g2 Q
|