当前位置: 首页 > 网络应用技术

Leetcode 1631。努力最小的路径(Python)

时间:2023-03-07 21:25:38 网络应用技术

  左单元格,(0,0),您希望进入右下方单元格(行1,列)(即0个索引)。您可以向上移动,向下,左右或向右移动,并且将找到一条需要最低限度努力的路线。

  路线的效果是路由两个连续单元之间高度的最大绝对差。

  返回从左上角电池传播到右下方电池所需的最小努力。

  示例1:

  示例2:

  示例3:

  笔记:

  根据目的,行的两个维度阵列的给定尺寸x x列高度,其中高度[行] [color]表示山的高度(行(行,彩色)。在左上角(0,0,0),然后进入右下角的单元格(第1行,列1)。向上,向下,向下或右侧移动,最后找到一条需要最小努力的登山路线该路线的努力是整个路线中两个连续单元格之间的最大绝对差异。从左上角移到右下角的最低限度。

  在每日问题的两天中,所有相关的知识并收集了相关知识,并且已携带代码。尽管这个问题是两个维数阵列,但可以将其拉入一个维数阵列,以便您以便您可以更好地编写代码。如果您不明白,可以做昨天的每日问题1202.最小的链接。

  这个问题的关键是将问题的含义转换为图。每个网格是一个节点,侧面的重量是相邻网格之间高度差的绝对值。然后,我们找到了从左上角到右下角的线路。解决问题的关键是如何找到最小努力的小努力,这绝对是重量的集合。我们对重量的所有重量进行分类,然后根据重量和大小来弥补连接性。当我们在重量的边缘上添加一定的边缘时,左上角和右下角的节点已完全连接,表明此重量是我们正在寻找的答案。当高度只有一个网格时,这是一个直接返回0的边界情况。

  时间复杂度为O(nlogn)n为m*n,因为我们将两个维数阵列拉到一个维数阵列中,并且空间复杂性为O(m*n)。

  https://leetcode.com/prblems/path-with-with-minum-eftort/

  您的支持是我最大的动力

  原始:https://juejin.cn/post/710332909603356709