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

    思路:经典的dp题目,应该是新建一个dp表,dp[i][j]表示从左上角到grid[i][j]的最短路径,因为只能往下和往右走,因此dp[i][j] = min(dp[i-1][j], dp[i][j-1]) + grid[i][j],经过压缩后可以使用一维的dp表,但是更新每个dp[i][j]只需要用到当前的grid[i][j],因此可以就把grid作为dp表,不用另外申请变量。

    class Solution(object):
        def minPathSum(self, grid):
            """
            :type grid: List[List[int]]
            :rtype: int
            """
            row = len(grid)
            col = len(grid[0])
            # dp = grid
            for i in range(1,row):
                grid[i][0] += grid[i-1][0]
            for i in range(1, col):
                grid[0][i] += grid[0][i-1]
                
            for i in range(1, row):
                for j in range(1, col):
                    grid[i][j] = min(grid[i-1][j], grid[i][j-1]) + grid[i][j]
            return grid[row-1][col-1]
                    
    
  • 相关阅读:
    ios资源
    学习swift开源项目
    学习di'z地址
    IOS基础库
    IT自学论坛
    HVTableView 分享组
    IOS中的动画菜单
    iOS 通讯录操作
    ios中autolayout
    ios 程序学习
  • 原文地址:https://www.cnblogs.com/dolisun/p/11350492.html
Copyright © 2011-2022 走看看