更新图片链接
This commit is contained in:
@@ -46,13 +46,13 @@
|
||||
|
||||
如下图所示,起始车站为 1 号车站,终点车站为 7 号车站,绿色路线为最短的路线,路线总长度为 12,则输出 12。
|
||||
|
||||

|
||||

|
||||
|
||||
不能到达的情况:
|
||||
|
||||
如下图所示,当从起始车站不能到达终点车站时,则输出 -1。
|
||||
|
||||

|
||||

|
||||
|
||||
数据范围:
|
||||
|
||||
@@ -76,7 +76,7 @@ dijkstra算法:在有权图(权值非负数)中求从起点到其他节点
|
||||
|
||||
如本题示例中的图:
|
||||
|
||||

|
||||

|
||||
|
||||
起点(节点1)到终点(节点7) 的最短路径是 图中 标记绿线的部分。
|
||||
|
||||
@@ -122,7 +122,7 @@ minDist数组数值初始化为int最大值。
|
||||
|
||||
这里在强点一下 **minDist数组的含义:记录所有节点到源点的最短路径**,那么初始化的时候就应该初始为最大值,这样才能在后续出现最短路径的时候及时更新。
|
||||
|
||||

|
||||

|
||||
|
||||
(图中,max 表示默认值,节点0 不做处理,统一从下标1 开始计算,这样下标和节点数值统一, 方便大家理解,避免搞混)
|
||||
|
||||
@@ -144,7 +144,7 @@ minDist数组数值初始化为int最大值。
|
||||
|
||||
3、更新非访问节点到源点的距离(即更新minDist数组) ,如图:
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
更新 minDist数组,即:源点(节点1) 到 节点2 和 节点3的距离。
|
||||
@@ -170,7 +170,7 @@ minDist数组数值初始化为int最大值。
|
||||
3、更新非访问节点到源点的距离(即更新minDist数组) ,如图:
|
||||
|
||||
|
||||

|
||||

|
||||
|
||||
更新 minDist数组,即:源点(节点1) 到 节点6 、 节点3 和 节点4的距离。
|
||||
|
||||
@@ -204,7 +204,7 @@ minDist数组数值初始化为int最大值。
|
||||
|
||||
3、更新非访问节点到源点的距离(即更新minDist数组) ,如图:
|
||||
|
||||

|
||||

|
||||
|
||||
由于节点3的加入,那么源点可以有新的路径链接到节点4 所以更新minDist数组:
|
||||
|
||||
@@ -224,7 +224,7 @@ minDist数组数值初始化为int最大值。
|
||||
|
||||
3、更新非访问节点到源点的距离(即更新minDist数组) ,如图:
|
||||
|
||||

|
||||

|
||||
|
||||
由于节点4的加入,那么源点可以链接到节点5 所以更新minDist数组:
|
||||
|
||||
@@ -244,7 +244,7 @@ minDist数组数值初始化为int最大值。
|
||||
|
||||
3、更新非访问节点到源点的距离(即更新minDist数组) ,如图:
|
||||
|
||||

|
||||

|
||||
|
||||
由于节点6的加入,那么源点可以链接到节点7 所以 更新minDist数组:
|
||||
|
||||
@@ -264,7 +264,7 @@ minDist数组数值初始化为int最大值。
|
||||
|
||||
3、更新非访问节点到源点的距离(即更新minDist数组) ,如图:
|
||||
|
||||

|
||||

|
||||
|
||||
由于节点5的加入,那么源点有新的路径可以链接到节点7 所以 更新minDist数组:
|
||||
|
||||
@@ -282,7 +282,7 @@ minDist数组数值初始化为int最大值。
|
||||
|
||||
3、更新非访问节点到源点的距离(即更新minDist数组) ,如图:
|
||||
|
||||

|
||||

|
||||
|
||||
节点7加入,但节点7到节点7的距离为0,所以 不用更新minDist数组
|
||||
|
||||
@@ -296,7 +296,7 @@ minDist数组数值初始化为int最大值。
|
||||
|
||||
路径如图:
|
||||
|
||||

|
||||

|
||||
|
||||
在上面的讲解中,每一步 我都是按照 dijkstra 三部曲来讲解的,理解了这三部曲,代码也就好懂的。
|
||||
|
||||
@@ -541,7 +541,7 @@ int main() {
|
||||
|
||||
对应如图:
|
||||
|
||||

|
||||

|
||||
|
||||
### 出现负数
|
||||
|
||||
@@ -549,7 +549,7 @@ int main() {
|
||||
|
||||
看一下这个图: (有负权值)
|
||||
|
||||

|
||||

|
||||
|
||||
节点1 到 节点5 的最短路径 应该是 节点1 -> 节点2 -> 节点3 -> 节点4 -> 节点5
|
||||
|
||||
@@ -559,7 +559,7 @@ int main() {
|
||||
|
||||
初始化:
|
||||
|
||||

|
||||

|
||||
|
||||
---------------
|
||||
|
||||
@@ -573,7 +573,7 @@ int main() {
|
||||
|
||||
3、更新非访问节点到源点的距离(即更新minDist数组) ,如图:
|
||||
|
||||

|
||||

|
||||
|
||||
更新 minDist数组,即:源点(节点1) 到 节点2 和 节点3的距离。
|
||||
|
||||
@@ -592,7 +592,7 @@ int main() {
|
||||
|
||||
3、更新非访问节点到源点的距离(即更新minDist数组) ,如图:
|
||||
|
||||

|
||||

|
||||
|
||||
由于节点3的加入,那么源点可以有新的路径链接到节点4 所以更新minDist数组:
|
||||
|
||||
@@ -610,7 +610,7 @@ int main() {
|
||||
|
||||
3、更新非访问节点到源点的距离(即更新minDist数组) ,如图:
|
||||
|
||||

|
||||

|
||||
|
||||
由于节点4的加入,那么源点可以有新的路径链接到节点5 所以更新minDist数组:
|
||||
|
||||
@@ -628,7 +628,7 @@ int main() {
|
||||
|
||||
3、更新非访问节点到源点的距离(即更新minDist数组) ,如图:
|
||||
|
||||

|
||||

|
||||
|
||||
节点5的加入,而节点5 没有链接其他节点, 所以不用更新minDist数组,仅标记节点5被访问过了
|
||||
|
||||
@@ -644,7 +644,7 @@ int main() {
|
||||
|
||||
3、更新非访问节点到源点的距离(即更新minDist数组) ,如图:
|
||||
|
||||

|
||||

|
||||
|
||||
--------------
|
||||
|
||||
@@ -942,3 +942,4 @@ main()
|
||||
|
||||
### C
|
||||
|
||||
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>
|
||||
|
||||
Reference in New Issue
Block a user