mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-11 02:58:13 +08:00
47 lines
2.7 KiB
HTML
47 lines
2.7 KiB
HTML
<p>给你一个下标从 <strong>0</strong> 开始的整数矩阵 <code>grid</code> ,矩阵大小为 <code>m x n</code> ,由从 <code>0</code> 到 <code>m * n - 1</code> 的不同整数组成。你可以在此矩阵中,从一个单元格移动到 <strong>下一行</strong> 的任何其他单元格。如果你位于单元格 <code>(x, y)</code> ,且满足 <code>x < m - 1</code> ,你可以移动到 <code>(x + 1, 0)</code>, <code>(x + 1, 1)</code>, ..., <code>(x + 1, n - 1)</code><strong> </strong>中的任何一个单元格。<strong>注意:</strong> 在最后一行中的单元格不能触发移动。</p>
|
||
|
||
<p>每次可能的移动都需要付出对应的代价,代价用一个下标从 <strong>0</strong> 开始的二维数组 <code>moveCost</code> 表示,该数组大小为 <code>(m * n) x n</code> ,其中 <code>moveCost[i][j]</code> 是从值为 <code>i</code> 的单元格移动到下一行第 <code>j</code> 列单元格的代价。从 <code>grid</code> 最后一行的单元格移动的代价可以忽略。</p>
|
||
|
||
<p><code>grid</code> 一条路径的代价是:所有路径经过的单元格的 <strong>值之和</strong> 加上 所有移动的 <strong>代价之和 </strong>。从 <strong>第一行</strong> 任意单元格出发,返回到达 <strong>最后一行</strong> 任意单元格的最小路径代价<em>。</em></p>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>示例 1:</strong></p>
|
||
|
||
<p><img alt="" src="https://assets.leetcode.com/uploads/2022/04/28/griddrawio-2.png" style="width: 301px; height: 281px;" /></p>
|
||
|
||
<pre>
|
||
<strong>输入:</strong>grid = [[5,3],[4,0],[2,1]], moveCost = [[9,8],[1,5],[10,12],[18,6],[2,4],[14,3]]
|
||
<strong>输出:</strong>17
|
||
<strong>解释:</strong>最小代价的路径是 5 -> 0 -> 1 。
|
||
- 路径途经单元格值之和 5 + 0 + 1 = 6 。
|
||
- 从 5 移动到 0 的代价为 3 。
|
||
- 从 0 移动到 1 的代价为 8 。
|
||
路径总代价为 6 + 3 + 8 = 17 。
|
||
</pre>
|
||
|
||
<p><strong>示例 2:</strong></p>
|
||
|
||
<pre>
|
||
<strong>输入:</strong>grid = [[5,1,2],[4,0,3]], moveCost = [[12,10,15],[20,23,8],[21,7,1],[8,1,13],[9,10,25],[5,3,2]]
|
||
<strong>输出:</strong>6
|
||
<strong>解释:</strong>
|
||
最小代价的路径是 2 -> 3 。
|
||
- 路径途经单元格值之和 2 + 3 = 5 。
|
||
- 从 2 移动到 3 的代价为 1 。
|
||
路径总代价为 5 + 1 = 6 。</pre>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>提示:</strong></p>
|
||
|
||
<ul>
|
||
<li><code>m == grid.length</code></li>
|
||
<li><code>n == grid[i].length</code></li>
|
||
<li><code>2 <= m, n <= 50</code></li>
|
||
<li><code>grid</code> 由从 <code>0</code> 到 <code>m * n - 1</code> 的不同整数组成</li>
|
||
<li><code>moveCost.length == m * n</code></li>
|
||
<li><code>moveCost[i].length == n</code></li>
|
||
<li><code>1 <= moveCost[i][j] <= 100</code></li>
|
||
</ul>
|