64:最小路径和
This commit is contained in:
parent
ab9ed7881d
commit
18c1e6d171
71
src/main/java/leetcode/editor/cn/MinimumPathSum.java
Normal file
71
src/main/java/leetcode/editor/cn/MinimumPathSum.java
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
//给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。
|
||||||
|
//
|
||||||
|
// 说明:每次只能向下或者向右移动一步。
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// 示例 1:
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//输入:grid = [[1,3,1],[1,5,1],[4,2,1]]
|
||||||
|
//输出:7
|
||||||
|
//解释:因为路径 1→3→1→1→1 的总和最小。
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// 示例 2:
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//输入:grid = [[1,2,3],[4,5,6]]
|
||||||
|
//输出:12
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// 提示:
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// m == grid.length
|
||||||
|
// n == grid[i].length
|
||||||
|
// 1 <= m, n <= 200
|
||||||
|
// 0 <= grid[i][j] <= 100
|
||||||
|
//
|
||||||
|
// Related Topics 数组 动态规划 矩阵
|
||||||
|
// 👍 955 👎 0
|
||||||
|
|
||||||
|
package leetcode.editor.cn;
|
||||||
|
|
||||||
|
import com.code.leet.entiy.TwoArray;
|
||||||
|
|
||||||
|
//64:最小路径和
|
||||||
|
class MinimumPathSum {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
//测试代码
|
||||||
|
Solution solution = new MinimumPathSum().new Solution();
|
||||||
|
TwoArray twoArray = new TwoArray("[[1,3,1],[1,5,1],[4,2,1]]", true);
|
||||||
|
System.out.println(solution.minPathSum(twoArray.getArr()));
|
||||||
|
}
|
||||||
|
|
||||||
|
//力扣代码
|
||||||
|
//leetcode submit region begin(Prohibit modification and deletion)
|
||||||
|
class Solution {
|
||||||
|
public int minPathSum(int[][] grid) {
|
||||||
|
int[][] dp = new int[grid.length][grid[0].length];
|
||||||
|
for (int i = 0; i < grid.length; i++) {
|
||||||
|
for (int j = 0; j < grid[0].length; j++) {
|
||||||
|
if (i > 0 && j > 0) {
|
||||||
|
dp[i][j] = grid[i][j] + Math.min(dp[i - 1][j], dp[i][j - 1]);
|
||||||
|
} else if (i > 0) {
|
||||||
|
dp[i][j] = grid[i][j] + dp[i - 1][j];
|
||||||
|
} else if (j > 0) {
|
||||||
|
dp[i][j] = grid[i][j] + dp[i][j - 1];
|
||||||
|
} else {
|
||||||
|
dp[i][j] = grid[i][j];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return dp[grid.length - 1][grid[0].length - 1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//leetcode submit region end(Prohibit modification and deletion)
|
||||||
|
|
||||||
|
}
|
32
src/main/java/leetcode/editor/cn/MinimumPathSum.md
Normal file
32
src/main/java/leetcode/editor/cn/MinimumPathSum.md
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
<p>给定一个包含非负整数的 <code><em>m</em> x <em>n</em></code> 网格 <code>grid</code> ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。</p>
|
||||||
|
|
||||||
|
<p><strong>说明:</strong>每次只能向下或者向右移动一步。</p>
|
||||||
|
|
||||||
|
<p> </p>
|
||||||
|
|
||||||
|
<p><strong>示例 1:</strong></p>
|
||||||
|
<img alt="" src="https://assets.leetcode.com/uploads/2020/11/05/minpath.jpg" style="width: 242px; height: 242px;" />
|
||||||
|
<pre>
|
||||||
|
<strong>输入:</strong>grid = [[1,3,1],[1,5,1],[4,2,1]]
|
||||||
|
<strong>输出:</strong>7
|
||||||
|
<strong>解释:</strong>因为路径 1→3→1→1→1 的总和最小。
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p><strong>示例 2:</strong></p>
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
<strong>输入:</strong>grid = [[1,2,3],[4,5,6]]
|
||||||
|
<strong>输出:</strong>12
|
||||||
|
</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>1 <= m, n <= 200</code></li>
|
||||||
|
<li><code>0 <= grid[i][j] <= 100</code></li>
|
||||||
|
</ul>
|
||||||
|
<div><div>Related Topics</div><div><li>数组</li><li>动态规划</li><li>矩阵</li></div></div>\n<div><li>👍 955</li><li>👎 0</li></div>
|
Loading…
Reference in New Issue
Block a user