【 NO.1 使数组中所有元素都等于零】
! x- x) G+ i' \6 d. d) \( @ 解题思路 答案即不同元素的个数。 代码展示 . W( j5 {; f' e( V
【 NO.2 分组的最大数量】 Z- B4 i- k' K% r% j/ W! D b1 W/ u
解题思路 排序后,第 1 个学生自己一组,然后 2 个学生一组,然后 3 个学生一组... 即第 i 组有 i 个学生。 等差数列求和,(i + 1) * i / 2 <= n, 解方程即可。 代码展示
【 NO.3 找到离给定两个节点最近的节点】
) { Q2 I* H0 }, Y# K# E+ w6 L$ U1 j 解题思路 用 BFS 求最短路即可。 代码展示
0 d: [7 [5 @# J& `* f2 Z7 v+ d' `8 t8 d/ X! H; R% J. _# i! @
【 NO.4 图中的最长环】
. f: w2 h6 S: ^9 ?3 p; V
" a5 O, k( Z i& Q* A# w O解题思路 类似 Tarjan 缩点算法,利用时间戳找环。 每访问一个新的点,时间戳自增,然后尝试从这个节点出发,观察它能访问到的历史时间戳,做减法得到环的长度。 代码展示
6 Q# o: t+ E4 Z+ w2 J# E
" B* U) K1 b6 a7 h4 A |