LeetCode--Minimum Path Sum (最小路径和)Python
来源:互联网 发布:默纳克刷机软件 编辑:程序博客网 时间:2024/05/19 01:59
题目:
给定一个m*n的数组,数组中包含非负数,从该数组左上角到该数组右下角的最小路径和。(只能向下或者向右移动)。数组格式如下:
[[1,3,1],
[1,5,1],
[4,2,1]]
解题思路:
考虑使用递归或者动态规划来解题:
楼主刚开始用递归实现了一遍,发现超时了,改为动态规划后AC。故只解释动归代码:从左上角开始对数组进行遍历,将grid(数组)内容存储为走到当前位置的最短路径和。故只考虑当前位置的左边和上边哪个小,就选择哪个路径即可。
动态规划代码(Python):
class Solution(object): def minPathSum(self, grid): """ :type grid: List[List[int]] :rtype: int """ m = len(grid) n = len(grid[0]) for i in range(m): for j in range(n): if i==0 and j==0: continue if i==0 and j!=0: grid[i][j]=grid[i][j-1]+grid[i][j] continue if i!=0 and j==0: grid[i][j]=grid[i-1][j]+grid[i][j] continue if i!=0 and j!=0: grid[i][j]=min(grid[i-1][j],grid[i][j-1])+grid[i][j] continue return grid[m-1][n-1]
递归代码(Python):
class Solution(object): def minPathSum(self, grid): """ :type grid: List[List[int]] :rtype: int """ final = [] m = len(grid)-1 n = len(grid[0])-1 print m print n def Iteration(i,j,sum_0): if i<m and j<n: Iteration(i+1,j,sum_0+grid[i+1][j]) Iteration(i,j+1,sum_0+grid[i][j+1]) if i==m and j==n: final.append(sum_0) if i==m and j<n: Iteration(i,j+1,sum_0+grid[i][j+1]) if i<m and j==n: Iteration(i+1,j,sum_0+grid[i+1][j]) Iteration(0,0,grid[0][0]) return min(final)
阅读全文
1 0
- LeetCode--Minimum Path Sum (最小路径和)Python
- [leetcode]Minimum Path Sum 最小路径和
- Leetcode:Minimum Path Sum 最小路径和
- LeetCode | Minimum Path Sum(最小路径和)
- LeetCode OJ 之 Minimum Path Sum (最小路径和)
- LeetCode 64. Minimum Path Sum(最小路径和)
- Leetcode 64. Minimum Path Sum 最小路径和 解题报告
- leetcode 64. Minimum Path Sum-最小路径和|动态规划
- [Leetcode-64]Minimum Path Sum 二维数组路径最小和
- Minimum Path Sum 最小路径和
- LinCode Minimum Path Sum 最小路径和
- leetcode64-Minimum Path Sum(最小路径和)
- lintcode minimum-path-sum 最小路径和
- 最小路径和—Minimum Path Sum
- 【LeetCode-面试算法经典-Java实现】【064-Minimum Path Sum(最小路径和)】
- 动态规划--最小路径和(Minimum Path Sum)
- 110.Minimum Path Sum-最小路径和(容易题)
- LeetCode(Minimum Path Sum) 找到路径中和最小的
- c++之友元类
- 使用ajax后获取元素的方法以及事件委托的使用
- leetcode 154. Find Minimum in Rotated Sorted Array II(二分+递归)
- js 表格查询+升序降序+敏感词
- 在pcl用例中获取kinect深度图像数据,并用opencv显示出来
- LeetCode--Minimum Path Sum (最小路径和)Python
- C++ 递归实现简单语言解释器
- “懂你”才叫人工智能 根本不用担心AI抢你饭碗
- 表单只读不能编辑
- PHP 大神的十大优良习惯
- 经典EL表达式和Jquery实现表格表单常用操作
- Java使用 Redis
- 常用的四种大数据分析方法
- (shui ti)通过switch语句进行四则运算的编程