LeetCode 64. Minimum Path Sum 解题报告
来源:互联网 发布:java 单个文件压缩 编辑:程序博客网 时间:2024/06/13 17:25
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.
题目意思:鉴于一米 X ñ网格填充非负数,发现从左上角到右下角其路径最小化沿其路径的所有数字的总和。
注意:您只能在任何时间点向下或向右移动。
显然用dp
dp[i][j]表示从左上到达i,j的最小值
dp[i][j]=min(dp[i-1][j],dp[i][j-1])+a[i][j];
dp[i-1][j]表示从上面过来的
dp[i][j-1]表示从左边过来的
因为当前位置要达到最优 所以要在从上面过来和从左边过来找到最小
初值
dp[0][0]=a[0][0];
dp[0][j>0]=dp[0][j-1]+a[0][j];
dp[i>0][0]=dp[i-1][0]+a[i][0];
复杂度(m*n)
AC代码
public class Solution { public int minPathSum(int[][] grid) { int n=grid.length; int m=grid[0].length; int dp[][]=new int[n][m]; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(i==0){ if(j==0){ dp[i][j]=grid[i][j]; }else{ dp[i][j]=grid[i][j]+dp[i][j-1]; } }else if(j==0){ dp[i][j]=grid[i][j]+dp[i-1][j]; }else{ dp[i][j]=Math.min(dp[i][j-1],dp[i-1][j])+grid[i][j]; } } } return dp[n-1][m-1]; }}
阅读全文
0 0
- [leetcode] 64. Minimum Path Sum 解题报告
- LeetCode 64. Minimum Path Sum 解题报告
- [Leetcode] 64. Minimum Path Sum 解题报告
- LeetCode 64. Minimum Path Sum 解题报告
- Leetcode 64. Minimum Path Sum 解题报告
- [LeetCode]Minimum Path Sum,解题报告
- 【LeetCode】Minimum Path Sum 解题报告
- [LeetCode] Minimum Path Sum 解题报告
- Leetcode 64. Minimum Path Sum 最小路径和 解题报告
- [LeetCode]Path Sum,解题报告
- 【LeetCode】Path Sum 解题报告
- Leetcode解题笔记 64. Minimum Path Sum [Medium] 动态规划
- leetcode解题方案--064--Minimum Path Sum
- LeetCode-Minimum Size Subarray Sum-解题报告
- [LeetCode]64.Minimum Path Sum
- LeetCode --- 64. Minimum Path Sum
- LeetCode 64.Minimum Path Sum
- [Leetcode] 64. Minimum Path Sum
- Adapter用法总结
- 关于hive中join的一些优化事项
- python3的异常处理
- 类与对象、构造与析构函数
- 9*9口诀
- LeetCode 64. Minimum Path Sum 解题报告
- 移动端长按事件
- 最简单的安卓接入微信支付教程,不简单你打我!
- 计算机网络原理知识点(第五章:运输层)
- HDU
- 最小费用最大流总结
- Gensim入门教程
- 基于装饰者模式的变种
- Codeforces 813 C The Tag Game