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]
  • 相关阅读:
    进阶学习项目实战链接
    Django与数据库操作
    xadmin的使用
    Django 常见的异常
    网站 安全 ---- 常见的 web 攻击
    nodejs--vue
    ECMAScript 6 简介
    Django -- DRF 认证流程
    Django -- 缓存
    Django --- celery异步任务与RabbitMQ模块
  • 原文地址:https://www.cnblogs.com/yawenw/p/12802648.html
Copyright © 2011-2022 走看看