Leetcode——64. 最小路径和
题目描述:题目链接
同样对于这个问题,我们可以考虑用动态规划来解决。
解决动态规划常见的三个步骤:
1:问题的归纳。对于 i,j 位置上的最短路径可以用d[ i ][ j ]表示。
2:归纳递推式:d[ i ][ j ] = Math.min( d [ i - 1 ] [ j ] , d [ i ] [ j - 1 ] ) + grid[ i ][ j ];因为题目中规定,只能向下或者向右边移动。
3:初始化d. 对于首行和首列肯定可以用一个for循环来表示。
要点:我们可以借用原数组来表示d,而不需要重新再new一个数组。
下面给出代码的描述:
class Solution {
public int minPathSum(int[][] grid) {
//利用动态规划思路解决
//先初始化首列
for(int i = 1; i < grid.length;i++)
grid[i][0] += grid[i-1][0];
//初始化首行
for(int i = 1; i < grid[0].length; i++)
grid[0][i] += grid[0][i-1] ;
for(int i = 1; i < grid.length; i++){
for(int j = 1; j < grid[0].length;j++){
grid[i][j] = Math.min(grid[i][j-1],grid[i-1][j])+grid[i][j];
}
}
return grid[grid.length-1][grid[0].length-1];
}
}
Leetcode——64. 最小路径和的更多相关文章
- leetcode 64. 最小路径和 动态规划系列
目录 1. leetcode 64. 最小路径和 1.1. 暴力 1.2. 二维动态规划 2. 完整代码及执行结果 2.1. 执行结果 1. leetcode 64. 最小路径和 给定一个包含非负整数 ...
- LeetCode 64. 最小路径和(Minimum Path Sum) 20
64. 最小路径和 64. Minimum Path Sum 题目描述 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小. 说明: 每次只能向下或 ...
- Java实现 LeetCode 64 最小路径和
64. 最小路径和 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小. 说明:每次只能向下或者向右移动一步. 示例: 输入: [ [1,3,1], ...
- [LeetCode] 64. 最小路径和 ☆☆☆(动态规划)
描述 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小. 说明:每次只能向下或者向右移动一步. 示例: 输入:[ [1,3,1], [1,5,1 ...
- LeetCode 64最小路径和
题目 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小. 说明:每次只能向下或者向右移动一步. 示例: 输入: [ [1,3,1], [1,5 ...
- [LeetCode]64. 最小路径和(DP)
题目 给定一个无序的整数数组,找到其中最长上升子序列的长度. 示例: 输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4 ...
- leetcode 64. 最小路径和Minimum Path Sum
很典型的动态规划题目 C++解法一:空间复杂度n2 class Solution { public: int minPathSum(vector<vector<int>>&am ...
- Leetcode之动态规划(DP)专题-64. 最小路径和(Minimum Path Sum)
Leetcode之动态规划(DP)专题-64. 最小路径和(Minimum Path Sum) 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小. ...
- Leetcode题目64.最小路径和(动态规划-中等)
题目描述: 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小. 说明:每次只能向下或者向右移动一步. 示例: 输入: [ [1,3,1], [1, ...
随机推荐
- 应用rbac组件 动态生成一级菜单
动态生成一级菜单 改表结构 需要知道是否是菜单\icon\名称权限表 +字段: is_menu = models.BooleanField(max_length=32,verbose_name='是否 ...
- JAVA generic array 泛型数组
在JAVA中是不支持泛型数组的,不能通过 Z[] array=new Z[10] 这样的方式来创建数组,而是使用反射Aarry.newInstance来创建: 具体代码如下: public Z[][] ...
- requireJS基本概念及使用流程(2)
上一篇我们一起研究了研究requireJS,这一篇我们来说一说requireJS具体的使用过程 其实很简单的,我总结了总结就是分为四步走 第一步:在页面中引入requireJS并且引入入口文件 第二步 ...
- VS窗体换肤
1.首先我们要下载一个皮肤 vs窗体皮肤下载官网:http://irisskin.software.informer.com/download/ 2.创建一个lib文件夹 把下载好的引用放到里面 3. ...
- css字体更小 css比12px更小的方法
<span style="margin-top: 0;-webkit-transform-origin-x: 0;-webkit-transform: scale(0.90);&quo ...
- Prometheus Node_exporter 之 Disk Datail /proc/diskstats
Disk Datail /proc/diskstats 1. Disk IOps Completed type: GraphUnit: I/O ops/sec(iops)Label: IO read( ...
- memcached编译安装报错 ,提示checking build system type... Invalid configuration `x86_64-unknown-linux-': machine `x86_64-unknown-linux' not recognized configure: error: /bin/sh ./config.sub x86_64-unknown-linu
- jQuery validate插件,自动验证无效的原因及解决方法归纳
最近在使用validate插件进行验证的时候,出现有的控件在个别事件(比如keydown.foucs.onchange等)下不能自动验证,而有的控件却又正常,当时觉得很诡异,后来仔细测试查看,归纳原因 ...
- Zabbix添加Ping外网IP监控
1.先添加一个HOST,只填写IP即可,如10.1.1.1 2.选择一台客户端,新建item,如下: 3.新建trigger: 注:icmpping[<target>,<packet ...
- 乘风破浪:LeetCode真题_036_Valid Sudoku
乘风破浪:LeetCode真题_036_Valid Sudoku 一.前言 有的时候对于一些基础知识的掌握,对我们是至关重要的,比如ASCII重要字符的表示,比如一些基本类型的长度. 二.Valid ...