【 NO.1 使数组中所有元素都等于零】
; J7 a G. I) U# W- N* X( y 解题思路 答案即不同元素的个数。 代码展示 9 l( C; |: t0 h) w3 d
【 NO.2 分组的最大数量】) R# c9 C P, Q" J
解题思路 排序后,第 1 个学生自己一组,然后 2 个学生一组,然后 3 个学生一组... 即第 i 组有 i 个学生。 等差数列求和,(i + 1) * i / 2 <= n, 解方程即可。 代码展示
【 NO.3 找到离给定两个节点最近的节点】
, H4 e9 h- b U$ s 解题思路 用 BFS 求最短路即可。 代码展示
9 @4 k& W7 y' h. A- g- Z5 o) I+ q
, v& i2 ~ c4 ^- {. o
【 NO.4 图中的最长环】
8 P5 l2 S2 v# l: u2 C ! B" E2 L7 X. }1 |4 A3 x& f( O
解题思路 类似 Tarjan 缩点算法,利用时间戳找环。 每访问一个新的点,时间戳自增,然后尝试从这个节点出发,观察它能访问到的历史时间戳,做减法得到环的长度。 代码展示
5 b B. y; o+ {" ^4 K( v9 J" P% Z! ?0 h0 h: d( H; E+ l) p; x
|