[LeetCode56]Minimum Path Sum
来源:互联网 发布:异形与人类谁厉害 知乎 编辑:程序博客网 时间:2024/06/05 18:10
Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path.
Note: You can only move either down or right at any point in time.
Analysis:
DP problem, use two dimension array
min[i][j] = min(min[i-1][j],min[i][j-1])+A[i][j];
init:
min[0][j] = A[0][j] , min[i][0] = A[i][j]
java
public int minPathSum(int[][] grid) { int n = grid.length;int m = grid[0].length;int [][] min = new int[n][m];min[0][0] = grid[0][0];for(int i=1;i<n;i++){min[i][0] = grid[i][0]+min[i-1][0];}for(int i=1;i<m;i++){min[0][i] = grid[0][i]+min[0][i-1];}for(int i=1;i<n;i++){for(int j=1;j<m;j++){min[i][j] = Math.min(min[i-1][j], min[i][j-1])+grid[i][j];}}return min[n-1][m-1]; }c++ similar
solution2:
利用滚动数组,更加节俭
java
public int minPathSum(int[][] grid) {<span style="white-space:pre"></span>int[] row = new int[grid[0].length]; for(int i=0;i<grid.length;i++){ for(int j=0;j<grid[0].length;j++){ if(j>0) row[j]=i>0?Math.min(row[j-1],row[j]):row[j-1]; row[j]+=grid[i][j]; } } return row[grid[0].length-1]; }
0 0
- [LeetCode56]Minimum Path Sum
- LeetCode: Minimum Path Sum
- LeetCode Minimum Path Sum
- LeetCode : Minimum Path Sum
- [Leetcode] Minimum Path Sum
- Minimum Path Sum
- Minimum Path Sum
- [LeetCode] Minimum Path Sum
- [Leetcode] Minimum Path Sum
- Minimum Path Sum
- [LeetCode]Minimum Path Sum
- Minimum Path Sum
- Minimum Path Sum
- Minimum Path Sum
- Minimum Path Sum
- [leetcode]Minimum Path Sum
- Minimum Path Sum
- LeetCode-Minimum Path Sum
- Ajax表单提交插件jquery form
- Hadoop 0.20.2+Sqoop 1.44+HBase 0.94从MySql往HDFS导入数据报错
- uinput模拟鼠标
- UVa 10550 - Combination Lock
- Android学习笔记_图片相关
- [LeetCode56]Minimum Path Sum
- Cygwin下安装pip无效的问题
- 百度云
- 抽象类理解
- Form表单插件jquery.form.js
- 从控制台中读取密码 - C#
- (Struts2学习篇) Struts2文件处理之文件下载
- 网页设计找灵感——汽车酷站欣赏
- 关于HTTP长连接