博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode 【 Minimum Path Sum 】python 实现
阅读量:7220 次
发布时间:2019-06-29

本文共 1444 字,大约阅读时间需要 4 分钟。

题目

Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path.

Note: You can only move either down or right at any point in time.

 

代码:oj测试通过 Runtime: 102 ms

1 class Solution: 2     # @param grid, a list of lists of integers 3     # @return an integer 4     def minPathSum(self, grid): 5         # none case 6         if grid is None: 7             return None 8         # store each step on matrix 9         step_matrix=[[0 for i in range(len(grid[0]))] for i in range(len(grid))]10         # first row11         tmp_sum = 012         for i in range(len(grid[0])):13             tmp_sum = tmp_sum + grid[0][i]14             step_matrix[0][i] = tmp_sum15         # first line16         tmp_sum = 017         for i in range(len(grid)):18             tmp_sum = tmp_sum + grid[i][0]19             step_matrix[i][0] = tmp_sum20         # dynamic program other positions in gird21         for row in range(1,len(grid)):22             for col in range(1,len(grid[0])):23                 step_matrix[row][col]=grid[row][col]+min(step_matrix[row-1][col],step_matrix[row][col-1])24         # return the minimun sum of path25         return step_matrix[len(grid)-1][len(grid[0])-1]

 

思路

动态规划常规思路。详情见这道题。

需要注意的是,动态规划迭代条件step_matrix[][]=grid[][]+min(...)

min里面的一定要是step_matrix对应位置的元素。一开始写成grid对应的元素,第一次没有AC,修改后第二次AC了。

 

转载于:https://www.cnblogs.com/xbf9xbf/p/4263492.html

你可能感兴趣的文章
LeetCode - 551. Student Attendance Record I
查看>>
Java用户线程和守护线程
查看>>
ClassLoader类加载机制&&JVM内存管理
查看>>
Caml语句 查询分配给当前用户及当前组
查看>>
记一次源码分析
查看>>
php版本引起的const问题
查看>>
js实现60s倒计时效果
查看>>
【POJ 2176】Folding
查看>>
redis的过期策略以及内存淘汰机制
查看>>
阿牛的EOF牛肉串
查看>>
随笔2013/2/13
查看>>
笨办法32循环和列表
查看>>
java序列化
查看>>
谈谈NITE 2的第一个程序HandViewer
查看>>
VS2008 未响应 假死
查看>>
html5、css3及响应式设计入门
查看>>
Win10還原成最乾淨的狀態
查看>>
Java_InvokeAll_又返回值_多个线程同时执行,取消超时线程
查看>>
SaltStack作业
查看>>
单例设计
查看>>