leetcode 【 Minimum Path Sum 】python 实现
题目:
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 row 11 tmp_sum = 0 12 for i in range(len(grid[0])): 13 tmp_sum = tmp_sum + grid[0][i] 14 step_matrix[0][i] = tmp_sum 15 # first line 16 tmp_sum = 0 17 for i in range(len(grid)): 18 tmp_sum = tmp_sum + grid[i][0] 19 step_matrix[i][0] = tmp_sum 20 # dynamic program other positions in gird 21 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 path 25 return step_matrix[len(grid)-1][len(grid[0])-1]
思路:
动态规划常规思路。详情见http://www.cnblogs.com/xbf9xbf/p/4250359.html这道题。
需要注意的是,动态规划迭代条件step_matrix[][]=grid[][]+min(...)
min里面的一定要是step_matrix对应位置的元素。一开始写成grid对应的元素,第一次没有AC,修改后第二次AC了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?