当前位置: 首页 > news >正文

LeetCode -- Minimum Path Sum

题目描述:
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.


在一个m*n的矩阵中,从左上角的位置开始向右下移动,每次只能走右或下。每个单元格包含1个非负数得到和s,每走一步累加这个数字。求从左上到右下路径中的最小s。


思路:
1.dp问题。初始化dp[0,0] = grid[0,0]。
2.初始化第一行和第一列:dp[i,0] = dp[i-1,0] + grid[i,0];dp[0,i] = dp[0,i-1] + grid[0,i]
3.从[i,j](初始化为[1,1])的位置向下走,从dp[i-1,j]与dp[i,j-1]中取最小值min,设置dp[i,j] = min + grid[i,j]。
4.最后的dp[row-1,col-1]即为最小和。






实现代码:


public class Solution {
    public int MinPathSum(int[,] grid) {
        var row = grid.GetLength(0);
    	var col = grid.GetLength(1);
    	
    	var dp = new int[row,col];
    	dp[0,0] = grid[0,0];
    	
    	// set first column
    	for(var i = 1;i < row; i ++){
    		dp[i,0] = dp[i-1,0] + grid[i,0];
    	}
    	
    	// set first row
    	for(var i = 1;i < col; i ++){
    		dp[0,i] = dp[0,i-1] + grid[0,i];
    	}
    	
	// from [1,1] to [m,n]
    	for(var i = 1;i < row; i++){
    		for(var j = 1;j < col; j++){
    			dp[i,j] = Math.Min(dp[i-1,j], dp[i,j-1]) + grid[i,j];
    		}
    	}
    	
    	return dp[row-1,col-1];
    }
}


相关文章:

  • LeetCode -- Multiply Strings
  • ArcGIS Server Java ADF 案例教程 27
  • LeetCode -- Permutations II
  • SQL语句性能调整之ORACLE的执行计划
  • LeetCode -- Product of Array Except Self
  • 不知道为什么我的一oracle的sql调优文章笔记无法发表,提示“文章中出现禁止的词语,系统不予接受。”...
  • LeetCode -- Remove Duplicates From Sorted Array 2
  • 好人陈虻
  • LeetCode -- Reverse Bits
  • LeetCode -- Rotate Array
  • SQL2005CLR函数扩展-天气服务
  • LeetCode -- String to Integer (atoi)
  • JavaScript 读写文件
  • LeetCode -- Subsets
  • 也谈实体验证(Entity Validation)
  • #Java异常处理
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • 2017届校招提前批面试回顾
  • angular2开源库收集
  • Asm.js的简单介绍
  • CSS实用技巧
  • E-HPC支持多队列管理和自动伸缩
  • extjs4学习之配置
  • gf框架之分页模块(五) - 自定义分页
  • PaddlePaddle-GitHub的正确打开姿势
  • SpiderData 2019年2月16日 DApp数据排行榜
  • vuex 笔记整理
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 十年未变!安全,谁之责?(下)
  • 数据可视化之 Sankey 桑基图的实现
  • 【干货分享】dos命令大全
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • #微信小程序(布局、渲染层基础知识)
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (ibm)Java 语言的 XPath API
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • .NET 4.0中的泛型协变和反变
  • .NET DataGridView数据绑定说明
  • .Net Redis的秒杀Dome和异步执行
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件
  • .NETCORE 开发登录接口MFA谷歌多因子身份验证
  • @ConfigurationProperties注解对数据的自动封装
  • @德人合科技——天锐绿盾 | 图纸加密软件有哪些功能呢?
  • [Angular] 笔记 7:模块
  • [CF494C]Helping People
  • [cocos creator]EditBox,editing-return事件,清空输入框
  • [Design Pattern] 工厂方法模式
  • [js]- 两个对象的合并(Object.assign)
  • [Manacher]【学习笔记】