[leetcode] Minimum Path Sum
2015-07-01 15:49
459 查看
From : https://leetcode.com/problems/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.
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.
class Solution { public: int minPathSum(vector<vector<int>>& grid) { int m, n; if(!(m=grid.size()) || !(n=grid[0].size())) return 0; for(int j=1; j<n; j++) grid[0][j] += grid[0][j-1]; for(int i=1; i<m; i++) grid[i][0] += grid[i-1][0]; for(int i=1; i<m; i++) { for(int j=1; j<n; j++) { grid[i][j] += min(grid[i-1][j], grid[i][j-1]); } } return grid[m-1][n-1]; } };
public class Solution { public int minPathSum(int[][] grid) { if(grid == null || grid.length == 0) { return 0; } int m = grid.length, n = grid[0].length; for(int i=1; i<m; ++i) { grid[i][0] += grid[i-1][0]; } for(int j=1; j<n; ++j) { grid[0][j] += grid[0][j-1]; } for(int i=1; i<m; ++i) { for(int j=1; j<n; ++j) { if(grid[i-1][j] < grid[i][j-1]) { grid[i][j] += grid[i-1][j]; } else { grid[i][j] += grid[i][j-1]; } } } return grid[m-1][n-1]; } }
相关文章推荐
- 卸載 (unmount)/退出檔案系統
- oracle11g 安装后无法登陆 以及make sure you have the 32 bits oracle client installed问题
- window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法
- RTL Compiler之Example
- 正则表达式--定义
- xCode升级 插件失效
- swift实作app 交流分項四(物件導向 OOP)
- linux源代码目录结构、linux内核模块
- 云计算平台最重要的五项技术
- Fragment中使用startActivityForResult
- 数据仓库的ETL抽取-转换-装载
- oracle 分区
- RES协议和断网访问URL出现的错误页面
- Toast的常用封装(只是总结了几种比较简单的用法)
- json判断null的方法
- 两种双链表操作
- Storm安装记录
- 在Struts2中jsp前台传值到action后台的方法(转载)
- linux源码包卸载方式
- ArcGIS for js API 3.9