zoukankan      html  css  js  c++  java
  • 30-Day Leetcoding Challenge Day18

    本题简单的动态规划

    分三种情况:

    1. 第一行元素:grid[i][j] += grid[i][j-1]

    2.第一列元素:grid[i][j] += grid[i-1][j]

    3.其他元素:grid[i][j] += min(grid[i-1][j], grid[i][j-1])

    返回矩阵最后一个元素

    JAVA

    class Solution {
        public int minPathSum(int[][] grid) {
            int m = grid.length;
            int n = grid[0].length;
            for(int i = 0; i < m; i++){
                for(int j = 0; j < n; j++){
                    if(i == 0 && j != 0){
                        grid[i][j] += grid[i][j-1];
                    }
                    if(j == 0 && i != 0){
                        grid[i][j] += grid[i-1][j];
                    }
                    if(i != 0 && j != 0){
                        grid[i][j] += Math.min(grid[i-1][j], grid[i][j-1]);
                    }
                }
            }
            return grid[m-1][n-1];
        }
    }

    Python3

    class Solution:
        def minPathSum(self, grid: List[List[int]]) -> int:
            m = len(grid)
            n = len(grid[0])
            for i in range(m):
                for j in range(n):
                    if i == 0 and j != 0:
                        grid[i][j] += grid[i][j-1]
                    if j == 0 and i != 0:
                        grid[i][j] += grid[i-1][j]
                    if i != 0 and j != 0:
                        grid[i][j] += min(grid[i-1][j], grid[i][j-1])
            return grid[-1][-1]
  • 相关阅读:
    swift NSComparator
    Java mac 上编写Java代码
    四舍五入、上取整、下取整
    数组排序
    删除xcode 里的多余证书
    启动画面 设置
    CGFloat Float 互转
    navigationController pop的几种方法
    iOS 获取键盘相关信息
    eclipse代码格式化
  • 原文地址:https://www.cnblogs.com/yawenw/p/12802648.html
Copyright © 2011-2022 走看看