【 NO.1 使数组中所有元素都等于零】
: q0 \" `' o7 a& C 解题思路 答案即不同元素的个数。 代码展示 ) V p( t \* s! y R* b& g9 _0 ?
【 NO.2 分组的最大数量】: `* v( ]1 P: o% P" g
解题思路 排序后,第 1 个学生自己一组,然后 2 个学生一组,然后 3 个学生一组... 即第 i 组有 i 个学生。 等差数列求和,(i + 1) * i / 2 <= n, 解方程即可。 代码展示
【 NO.3 找到离给定两个节点最近的节点】- p3 l& x2 \% w4 |% g; z3 H; R
解题思路 用 BFS 求最短路即可。 代码展示
1 r: w' f4 `3 X; K( Z
4 e( N" `& P' s5 w【 NO.4 图中的最长环】
' i8 C/ u" w' s$ X
Z5 I- }7 m' w; ?3 a% Y4 ~解题思路 类似 Tarjan 缩点算法,利用时间戳找环。 每访问一个新的点,时间戳自增,然后尝试从这个节点出发,观察它能访问到的历史时间戳,做减法得到环的长度。 代码展示
]5 I' l2 d, K, T) Y+ r3 v9 J$ A6 s8 h; \$ B
|