【 NO.1 使数组中所有元素都等于零】 w8 }- k3 o. t1 p
解题思路 答案即不同元素的个数。 代码展示
# n1 b& g8 I& Q+ M. G3 ]
【 NO.2 分组的最大数量】) W0 z- }1 P! R3 a; r) z9 \' k
解题思路 排序后,第 1 个学生自己一组,然后 2 个学生一组,然后 3 个学生一组... 即第 i 组有 i 个学生。 等差数列求和,(i + 1) * i / 2 <= n, 解方程即可。 代码展示
【 NO.3 找到离给定两个节点最近的节点】' g, g" n+ S$ v! t. ?5 W
解题思路 用 BFS 求最短路即可。 代码展示
1 u" H/ j+ _: R. @
0 r5 r3 r: L; S! z1 |+ H$ \【 NO.4 图中的最长环】$ Z/ q" l. Y8 R" V/ ~
1 ^. N- C4 v0 d7 B& W
解题思路 类似 Tarjan 缩点算法,利用时间戳找环。 每访问一个新的点,时间戳自增,然后尝试从这个节点出发,观察它能访问到的历史时间戳,做减法得到环的长度。 代码展示 , O. R v0 [- ]# {. @
( S8 a, d5 q. r/ y |