349删除路径后的最短路问题
问题描述
小 F 正在探索一个有 n
个点的地图,其中每个点都有对应的二维坐标 (xi, yi)
。起点是第 s
个点,终点是第 t
个点,原本所有点之间都有一条线段,表示可以通行,并且长度为欧几里得距离。但是由于某些意外,起点 s
和终点 t
之间的直接通行路径被删除了。小 F 希望你帮忙计算从 s
到 t
的最短路径,允许经过其他点,但不能直接通过删除的那条线。
需要注意的是,点 i, j
之间的欧几里得距离计算公式为:
[ \text{distance} = \sqrt{(x_i - x_j)^2 + (y_i - y_j)^2} ]
你需要输出从起点 s
到终点 t
的最短距离,结果需要四舍五入到小数点后两位。
题解
我们需要计算从起点 s
到终点 t
的最短路径,允许经过其他点,但不能直接通过删除的那条线。由于任意两个点之间都有线段连接,可以通过枚举中间点来计算最短距离
代码实现
1 |
|
复杂度分析
时间复杂度:$O(n)$,其中 $n$ 是点的数量。我们需要遍历所有点来计算最短路径。
空间复杂度:$O(1)$。
349删除路径后的最短路问题
https://kongshuilinhua.github.io/2025/01/24/349删除路径后的最短路问题/