LeetCode--064--最小路径和
时间:2019-08-30
本文章向大家介绍LeetCode--064--最小路径和,主要包括LeetCode--064--最小路径和使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。
说明:每次只能向下或者向右移动一步。
示例:
输入:
[
[1,3,1],
[1,5,1],
[4,2,1]
]
输出: 7
解释: 因为路径 1→3→1→1→1 的总和最小。
思路:dp思想,为每个点构造最短路径矩阵,每次看左边和上边的最短路径,最小的那个加上该位置的值,就是到达该位置的最短路径。
由于是两层for,时间复杂度比较高
1 class Solution: 2 def minPathSum(self, grid: List[List[int]]) -> int: 3 if len(grid) == 0:return 0 4 res = [[99 for n in range(len(grid[0]))] for m in range(len(grid))] 5 for i in range(len(grid)): 6 for j in range(len(grid[0])): 7 if i == 0 and j == 0: 8 res[i][j] = grid[i][j] 9 elif i == 0 and j != 0: 10 res[i][j] = res[i][j-1] + grid[i][j] 11 elif i != 0 and j == 0: 12 res[i][j] = res[i-1][j] + grid[i][j] 13 else: 14 res[i][j] = min(res[i-1][j],res[i][j-1]) + grid[i][j] 15 return res[-1][-1] 16 17
提交的最快的一种:
□ √ √ 第一行的√,依赖于其左边的 第一列的√依赖于其上面的,先算出来,直接在原矩阵计算就行,空间复杂度降了
√ □ □
√ □ □
1 class Solution: 2 def minPathSum(self, grid: List[List[int]]) -> int: 3 4 for i in range(1,len(grid)): 5 grid[i][0]+=grid[i-1][0] 6 for i in range(1,len(grid[0])): 7 grid[0][i]+=grid[0][i-1] 8 9 for i in range(1,len(grid)): 10 for j in range(1,len(grid[0])): 11 grid[i][j]=min(grid[i-1][j]+grid[i][j], grid[i][j-1]+grid[i][j]) 12 13 return grid[-1][-1]
原文地址:https://www.cnblogs.com/NPC-assange/p/11436838.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Linux VPS安装Google Authenticator实现SSH登陆二次验证
- Android小程序实现访问联系人
- Android小程序实现切换背景颜色
- 浅析Android加载字体包及封装的方法
- android实现滑动标签页效果的代码解析
- Android PC端用ADB抓取指定应用日志实现步骤
- Android studio 禁用AndroidX方式
- Android 实现把bitmap图片的某一部分的颜色改成其他颜色
- AndroidStudio构建项目提示错误信息“unable to find valid certification”的完美解决方案
- Android自定义View实现抖音飘动红心效果
- Android Studio 利用Splash制作APP启动界面的方法
- android surfaceView实现播放视频功能
- Android Studio中一套代码多渠道打包的实现方法
- Android自定义View实现圆环进度条
- Android启动页用户相关政策弹框的实现代码