zoukankan      html  css  js  c++  java
  • Leetcode 64. 最小路径和

    给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。

    说明:每次只能向下或者向右移动一步。

    示例:

    输入:
    [
      [1,3,1],
      [1,5,1],
      [4,2,1]
    ]
    输出: 7
    解释: 因为路径 1→3→1→1→1 的总和最小。
    

    思路:简单DP
    dp[i][j]=min(dp[i-1][j],dp[i][j-1])+grid[i][j];
    当前值=左边与上边较小的值加上当前网格的值
    对于边界直接做前缀和

     1 int minPathSum(int[][] grid) {
     2         int r=grid.length;
     3         int c=-1;
     4         if(r!=0)
     5             c=grid[0].length;
     6         
     7         int [][] dp=new int[r][c];
     8         
     9         for(int i=0;i<r;i++)
    10         {
    11             for(int j=0;j<c;j++)
    12             {
    13                 if(i==0&&j==0)
    14                     dp[i][j]=grid[0][0];
    15                 else if(i==0)
    16                 {
    17                     dp[i][j]=dp[i][j-1]+grid[i][j];
    18                 }else if(j==0)
    19                 {
    20                     dp[i][j]=dp[i-1][j]+grid[i][j];
    21                 } else {
    22                     dp[i][j]=min(dp[i-1][j],dp[i][j-1])+grid[i][j];
    23                 }
    24             }
    25         }
    26         return dp[r-1][c-1];
    27         
    28     }
    29     private int min(int i, int j) {
    30         // TODO Auto-generated method stub
    31         if(i<j)
    32             return i;
    33         else return j;
    34     }
    View Code
  • 相关阅读:
    eclipse中的项目的JRE换成JDK
    Eclipse中maven项目的创建和运行
    git 发布命令
    vbox中虚拟ubuntu增加新的虚拟硬盘
    MyServer
    java常用的中间件
    高并发解决方案
    浅谈SpringMVC
    浅谈HIbernate
    javaweb笔记七
  • 原文地址:https://www.cnblogs.com/tijie/p/9966634.html
Copyright © 2011-2022 走看看