Minimum Path Sum

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.

分析:

动态规划的经典题目,设dp[i][j]表示从位置[0,0]到[i,j]的最小路径和,要到达位置[i,j]只能从[i,j-1]或[i-1,j]向右或向下走一步到达,

所以状态转移方程为:

dp[i][j]=min(dp[i-1][j],dp[i][j-1])+grid[i][j];

由二维dp进一步优化为一维dp:

当j=0时,dp[j]=dp[j]+grid[i][j];

当0<j&&j<n时,dp[j]=min(dp[j],dp[j-1])+grid[i][j];

(此时的dp[j]等价于二维dp中的dp[i][j])

参考代码:

public class Solution {public int minPathSum(int[][] grid) {int nlen=grid.length;int mlen=grid[0].length;int dp[]=new int[mlen];dp[0]=grid[0][0];for(int j=1;j<mlen;j++){dp[j]=dp[j-1]+grid[0][j];}for(int i=1;i<nlen;i++){for(int j=0;j<mlen;j++){dp[j]=grid[i][j]+(j==0?(dp[j]):(Math.min(dp[j-1], dp[j])));}}return dp[mlen-1];}
}

转载于:https://www.cnblogs.com/xiaolu266/p/7151034.html

LeetCode-Minimum Path Sum[dp]相关推荐

  1. [leetcode] Minimum Path Sum

    Minimum Path Sum Given a m x n grid filled with non-negative numbers, find a path from top left to b ...

  2. LeetCode Minimum Path Sum(动态规划)

     Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right wh ...

  3. LeetCode:Minimum Path Sum(网格最大路径和)

    Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which ...

  4. 【DP】LeetCode 64. Minimum Path Sum

    LeetCode 64. Minimum Path Sum Solution1:标准的动态规划题目 class Solution { public:int minPathSum(vector<v ...

  5. 【leetcode】Minimum Path Sum

    Minimum Path Sum Given a m x n grid filled with non-negative numbers, find a path from top left to b ...

  6. 63. Unique Paths II and 64. Minimum Path Sum

    文章目录 1 63 Unique Paths II 1.1 题目描述 1.2 动态规划解决 2 64. Minimum Path Sum 2.1 题目理解 2.2 动态规划 这一遍刷dp的题目就很轻松 ...

  7. [勇者闯LeetCode] 112. Path Sum

    [勇者闯LeetCode] 112. Path Sum Description Given a binary tree and a sum, determine if the tree has a r ...

  8. [LeetCode]113.Path Sum II

    [题目] Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the giv ...

  9. leetcode 112. Path Sum, 113. Path Sum II | 112,113. 路径总和 I, II(Java)

    题目 https://leetcode.com/problems/path-sum/ https://leetcode.com/problems/path-sum-ii/ 题解 简单的遍历二叉树,不解 ...

最新文章

  1. PHP更新数据库记录
  2. ModuleNotFoundError: No module named ‘pandas._libs.tslibs.base‘
  3. hadoop学习笔记:运行wordcount对文件字符串进行统计案例
  4. Datatable表格点击某个单元格可以获取整行数据
  5. 2015年第六届蓝桥杯 - 省赛 - Java大学A组 - A. 熊怪吃核桃
  6. iOS开源项目周报0323
  7. ipad分屏_iPad如何分屏及常见问题
  8. 什么是 CD 管道?一文告诉你如何借助Kubernetes、Ansible和Jenkins创建CD管道!
  9. oracle 10g rac 修改sga_target不生效,Oracle Rac 修改SGA_TARGET值无变化
  10. linux io阻塞问题
  11. 用Semisynchronous Replication半同步,mk-table-checksum数据同步一致性检查,监控主从同步运行状态的脚本等方式加强SQL性能和数据审核...
  12. 如何使VNC和Linux tty7 显示同步效果
  13. ADAS视觉方案盘点:摄像头、芯片和算法
  14. Ubuntu下修改键盘排列
  15. 【带你快速了解人工智能开发Python基础课程第二周】
  16. 64位windows系统的PatchGuard
  17. PIC反汇编流程(详解)
  18. YOLOv5 5.0版本检测FPS
  19. 一文让你秒懂场效应晶体管的所有参数
  20. matlab实现二分法、牛顿法与割线法

热门文章

  1. 使用PyInstaller2将Python脚本转化为可执行文件(下-进阶使用)
  2. 数据结构(C++版) 栈的链接存储结构及实现
  3. 公布几个流氓软件分析报告——哇哇资讯精灵
  4. GDAL写入FileGDB中文属性乱码问题
  5. c语言用链表实现成绩管理系统,C语言写的学生成绩管理系统(链表)
  6. Kubeadm installation
  7. cocos2d-x 动画工具 Flash2Cocos2d-x
  8. Android已读未读功能,Android实现小圆点显示未读功能
  9. matlab自带的信号,实验一 连续时间信号在MATLAB中的表示..ppt
  10. ROS Kinetic 安装指南