zoukankan      html  css  js  c++  java
  • 64. 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问题,dp[i][j]表示从左上节点走到[i,j]节点的最小路径和。注意在第一行时候只能从左往右走,第一列时候只能从上往下走。

     1     public int minPathSum(int[][] grid) {
     2         int m = grid.length;
     3         if (m == 0) return -1;
     4         int n = grid[0].length;
     5         if (n == 0) return -1;
     6         for (int i = 0; i < m; i++) {
     7             for (int j = 0; j < n; j++) {
     8                 if (i == 0 && j == 0)
     9                 {} else if (i == 0 && j > 0) {
    10                     grid[0][j] = grid[0][j - 1] + grid[0][j];
    11                 } else if (i > 0 && j == 0) {
    12                     grid[i][0] = grid[i - 1][0] + grid[i][0];
    13                 } else {
    14                     grid[i][j] = Math.min(grid[i - 1][j], grid[i][j - 1]) + grid[i][j];
    15                 }
    16             }
    17         }
    18         return grid[m - 1][n - 1];      
    19     }
  • 相关阅读:
    UVa 107 The Cat in the Hat
    UVa 591 Box of Bricks
    UVa 253 Cube painting
    UVa 10161 Ant on a Chessboard
    UVa 401 Palindromes
    UVa 465 Overflow
    我不知道
    消防局的设立
    某CF的D
    保安站岗
  • 原文地址:https://www.cnblogs.com/wzj4858/p/7675954.html
Copyright © 2011-2022 走看看