【 NO.1 使数组中所有元素都等于零】
: ?( z; G3 W4 ^( k/ | 解题思路 答案即不同元素的个数。 代码展示 ; Q% F X% H$ ?8 c
【 NO.2 分组的最大数量】' z3 ]8 e9 X$ z
解题思路 排序后,第 1 个学生自己一组,然后 2 个学生一组,然后 3 个学生一组... 即第 i 组有 i 个学生。 等差数列求和,(i + 1) * i / 2 <= n, 解方程即可。 代码展示
【 NO.3 找到离给定两个节点最近的节点】7 k7 m! l' m2 q8 {8 @
解题思路 用 BFS 求最短路即可。 代码展示
! w) z9 T# R& I* M# Z1 T ^- T
2 `- t, _0 `9 r1 b' a/ g5 {# ]【 NO.4 图中的最长环】
. F' L1 L3 g9 h2 Y8 d 7 j5 p$ M p4 r- t' v" @" n
解题思路 类似 Tarjan 缩点算法,利用时间戳找环。 每访问一个新的点,时间戳自增,然后尝试从这个节点出发,观察它能访问到的历史时间戳,做减法得到环的长度。 代码展示 # c8 K. O' c2 j
( f+ G2 O x! u( o* @' J
|