• Leecode no.64 最小路径和


    package leecode;


    /**
    *
    * 64. 最小路径和
    *
    * 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。
    *
    * 说明:每次只能向下或者向右移动一步。
    *
    *
    * @author Tang
    * @date 2021/9/7
    */
    public class MinPathSum {


    /**
    * 动态规划解决二维数组问题
    * 老规矩
    * x :每一个元素
    * f(x) :从起始位置到该元素的最小路径值
    * f(x) = MAX( f(y), f(z) )+1 y为x左边元素,z为x上边元素
    *
    * @param grid
    * @return
    */
    public int minPathSum(int[][] grid) {
    if(grid.length == 0) {
    return 0;
    }
    int down = grid.length;
    int right = grid[down-1].length;

    //构建备忘录
    int[][] tables = new int[down][right];

    /**
    * 优先按列处理
    */
    for(int i = 0; i < down; i++) {
    for(int j = 0; j < right; j++) {
    if(i == 0 && j == 0){
    tables[i][j] = grid[i][j];
    continue;
    }

    if(i == 0) {
    tables[i][j] = tables[i][j-1] + grid[i][j];
    continue;
    }
    if(j == 0) {
    tables[i][j] = tables[i-1][j] + grid[i][j];
    continue;
    }
    tables[i][j] = Math.min(tables[i-1][j], tables[i][j-1]) + grid[i][j];
    }
    }


    return tables[down-1][right-1];
    }

    public static void main(String[] args) {
    int[][] nums= {{1,2,3},{4,5,6}};
    System.out.println(new MinPathSum().minPathSum(nums));

    }

    }
  • 相关阅读:
    LinuxIP乱码
    APP前置代码脚本等基础操作及安装python库
    XP定位(APP元素定位)
    关联函数应用
    命令查看当前运行APP的包名和Activity
    android智能手机如何查看APK包名
    接口代码(requests库安装)
    python不能运行
    语音接口参数转换
    接口图片参数化
  • 原文地址:https://www.cnblogs.com/ttaall/p/15238239.html
Copyright © 2020-2023  润新知