1. 最少走几条边
有向图的边为 A→B、A→C、B→D、C→D、D→E,每条边长度为 1。从 A 到 E 的最短距离是多少?可用什么搜索方法?
我的思路:
________________________________________________
________________________________________________
提示与讲解
按距离一层一层向外搜索。
答案:3;可用广度优先搜索(BFS)。
A 到 B 或 C 为 1 步,到 D 为 2 步,到 E 为 3 步。BFS 适合寻找无权图的最少边数路径。
2. 走上五级台阶
每次只能走 1 级或 2 级,从第 0 级走到第 5 级有多少种不同走法?
我的思路:
________________________________________________
________________________________________________
提示与讲解
到第 n 级前,最后一步只能来自 n−1 或 n−2。
答案:8 种
令 f(0)=1、f(1)=1,之后 f(n)=f(n−1)+f(n−2)。依次得到 f(2)=2、f(3)=3、f(4)=5、f(5)=8。
3. 估算算法代价
外层 i 从 1 到 n,内层 j 从 1 到 i,每次执行一个固定耗时操作。总操作次数与时间复杂度分别是什么?
我的思路:
________________________________________________
________________________________________________
提示与讲解
把每轮次数相加。
答案:n(n+1)/2 次;时间复杂度为 O(n²)。
总次数为 1+2+…+n = n(n+1)/2。最高次项是 n²,因此渐近增长量级为平方级。