LeetC米乐M6 M6米乐ode:最小体力消耗路径day24

2022-08-30 03:36:57
浏览次数:
返回列表

  米乐M6 M6米乐米乐M6 M6米乐米乐M6 M6米乐米乐M6 M6米乐你准备参加一场远足活动。给你一个二维 rows x columns 的地图 heights ,其中 heights[row][col] 表示格子 (row, col) 的高度。一开始你在最左上角的格子 (0, 0) ,且你希望去最右下角的格子 (rows-1, columns-1) (注意下标从 0 开始编号)。你每次可以往

  一条路径耗费的 体力值 是路径上相邻格子之间 高度差绝对值 的 最大值 决定的。

  我们把每个格子当做图的一个节点,将相邻两个格子的高度差绝对值作为边的权重。就可以把输入的矩阵转化成为带权图。

  对例 1 ,可以将输入的矩阵转换为下图,可以看到,从最左上角到最右上角的最小体力消耗路径为红色标注的路径,最小体力消耗即为该路径中边的最大权重:2。

  转换为图后,我们可以想到图的连通性,怎么求解最小体力消耗路径呢?没错,又是考察并查集,每日一题已经出了这么久的并查集,今天的题目也不会让我们失望。我们认为这是在求从最左上角的节点到最右下角的节点的连通性问题。具体来说,我们可以先把图中的所有边都去掉,然后按照边的权重大小,把边再逐个的添加上。当我们添加到某一条边时,最左上角的节点和最右下角的节点连通了,那么该边的权重就是我们要求的最小体力消耗值。

搜索