【 NO.1 使数组中所有元素都等于零】" B" h" i, r5 w
解题思路 答案即不同元素的个数。 代码展示 " ~( y- K1 _0 y. L6 U2 o% L$ t' F
【 NO.2 分组的最大数量】/ H. i: w4 r9 ^8 Y a- [% b! R
解题思路 排序后,第 1 个学生自己一组,然后 2 个学生一组,然后 3 个学生一组... 即第 i 组有 i 个学生。 等差数列求和,(i + 1) * i / 2 <= n, 解方程即可。 代码展示
【 NO.3 找到离给定两个节点最近的节点】
+ k! x8 M* @ R9 K 解题思路 用 BFS 求最短路即可。 代码展示
! m5 H5 k; l" P! j' h% E9 c& l! e& `
【 NO.4 图中的最长环】. }$ \# W& p. V" h, \ k, ?
( u. ?2 m( D+ _5 q
解题思路 类似 Tarjan 缩点算法,利用时间戳找环。 每访问一个新的点,时间戳自增,然后尝试从这个节点出发,观察它能访问到的历史时间戳,做减法得到环的长度。 代码展示
% S9 n) b4 i' U/ \% o. l* E* u+ J
8 t+ U: A5 y5 R1 h. f& ? |