【 NO.1 使数组中所有元素都等于零】$ P0 H% T8 {% S5 c- Q3 l# Y4 ]( G
解题思路 答案即不同元素的个数。 代码展示 ' x/ d% ?4 j2 @# f, f
【 NO.2 分组的最大数量】: t9 q2 T1 U% P
解题思路 排序后,第 1 个学生自己一组,然后 2 个学生一组,然后 3 个学生一组... 即第 i 组有 i 个学生。 等差数列求和,(i + 1) * i / 2 <= n, 解方程即可。 代码展示
【 NO.3 找到离给定两个节点最近的节点】
9 g3 n, B6 c8 c! H2 _ 解题思路 用 BFS 求最短路即可。 代码展示
$ G; H$ n7 W* Q, ?
0 ?4 b! @5 v9 \9 q- m1 e【 NO.4 图中的最长环】9 |7 {1 Y& k; w& _, g
! j: p; v2 D% k! J
解题思路 类似 Tarjan 缩点算法,利用时间戳找环。 每访问一个新的点,时间戳自增,然后尝试从这个节点出发,观察它能访问到的历史时间戳,做减法得到环的长度。 代码展示
! @2 j5 B' c b
3 o+ `# u* C+ e: I& w: Z* g |