【 NO.1 使数组中所有元素都等于零】
. ]9 h1 s# n" a$ h0 M( Z 解题思路 答案即不同元素的个数。 代码展示
) A5 t9 E$ D% P8 U. b
【 NO.2 分组的最大数量】2 H$ n# Z2 j, M4 C! [
解题思路 排序后,第 1 个学生自己一组,然后 2 个学生一组,然后 3 个学生一组... 即第 i 组有 i 个学生。 等差数列求和,(i + 1) * i / 2 <= n, 解方程即可。 代码展示
【 NO.3 找到离给定两个节点最近的节点】+ M$ V9 N& J+ v+ I( z
解题思路 用 BFS 求最短路即可。 代码展示
- ?! o5 x( Z9 N) c$ Q9 R
. \ Y n* C8 g1 e【 NO.4 图中的最长环】
3 L$ Q/ |7 B ?( [4 l- S2 g8 t4 t
2 E( X' W# L% o7 m5 i" X2 O, Y解题思路 类似 Tarjan 缩点算法,利用时间戳找环。 每访问一个新的点,时间戳自增,然后尝试从这个节点出发,观察它能访问到的历史时间戳,做减法得到环的长度。 代码展示 , \5 l$ z) A ] E0 `6 y
6 A% A8 `3 g1 p: t* r( Z
|