1631最小米乐 M6体力消耗路径(每日一题)

2024-04-22 13:45:17
浏览次数:
返回列表

  理解题意是找到一条从左上角到右下角的路径,使得在该路径中相邻节点的体力消耗的绝对值的最大值是比其他路径的最小,假如想到是的用搜索方米乐 M6法进行。

  根据提示可以先将输入数组转换为图结构,每个[i]米乐 M6[j]对应一个点,相邻节点的权重则是这两个相邻节点的值的差的绝对值,这样我们的目的就是找M6 米乐到一个k值,使得k尽量小的情况下能够满足从出发点到达右下角。因此 k从小到大,但是使用二分确定k值。

  首先将二维数组转为图节点,将位置(i,j)进行编号,常用方法是位置(i, j)对应编号为i \times n + j,n为列数。实现mn的数组对应到[0, mn)范围内的整数。

  假如使用BFS,给定一个k值,判断不超过k的情况下能不能搜索到一条从左上角到右下角的路径,因为我们对k进行二分查找,所以需要确定二分范围,每个格子高度范围在1 \leq h \leq 10^{6},所以在该范围内进行二分。

搜索