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

    题目描述:

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

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

      示例:

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

    题解:

      grid(i,j)=grid(i,j)+min(grid(i+1,j),grid(i,j+1))

    public class Solution {
        public int minPathSum(int[][] grid) {
            for (int i = grid.length - 1; i >= 0; i--) {
                for (int j = grid[0].length - 1; j >= 0; j--) {
                    if(i == grid.length - 1 && j != grid[0].length - 1)
                        grid[i][j] = grid[i][j] +  grid[i][j + 1];
                    else if(j == grid[0].length - 1 && i != grid.length - 1)
                        grid[i][j] = grid[i][j] + grid[i + 1][j];
                    else if(j != grid[0].length - 1 && i != grid.length - 1)
                        grid[i][j] = grid[i][j] + Math.min(grid[i + 1][j],grid[i][j + 1]);
                }
            }
            return grid[0][0];
        }
    }
  • 相关阅读:
    数据结构与算法4—队列
    栈的应用——括号匹配
    迷宫求解
    python的socket编程
    数据结构与算法3—栈
    数据结构与算法2—链表
    数据结构与算法1—线性表
    增量解析
    ElementTree类
    节点序列化
  • 原文地址:https://www.cnblogs.com/mayang2465/p/11807462.html
Copyright © 2011-2022 走看看