LeetCode 64. Minimum Path Sum
来源:互联网 发布:二进制指数退避算法 编辑:程序博客网 时间:2024/06/06 00:02
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.
动态规划。因为每次只能向右或者向下走,到达每个点只有两种方式,那么到达每个点的值就是从上边过来和从左边过来的最小值加上自身的值。
dp[i][j]=min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j].
int min(int a, int b){ return a < b?a:b;}int minPathSum(int** grid, int gridRowSize, int gridColSize) { int dp[1000][1000] = {0}; int i, j; dp[0][0] = grid[0][0]; for(i = 0; i < gridRowSize; i ++){ for(j = 0; j < gridColSize; j ++){ if(i == 0 && j > 0) dp[i][j] = dp[i][j - 1] + grid[i][j]; else if(j == 0 && i > 0) dp[i][j] = dp[i - 1][j] + grid[i][j]; else dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j]; } } return dp[gridRowSize - 1][gridColSize - 1];}
空间优化:
因为每次更新的dp[i][j],是先确定i,再遍历j,每次用到的dp[i - 1][j]或者dp[i][j - 1],都和i无关,只和j有关,i是固定的,所以可以用一维数组表示。
int min(int a, int b){ return a < b?a:b;}int minPathSum(int** grid, int gridRowSize, int gridColSize) { int dp[1000] = {0}; int i, j; dp[0] = grid[0][0]; for(i = 0; i < gridRowSize; i ++){ for(j = 0; j < gridColSize; j ++){ if(i == 0 && j > 0) dp[j] = dp[j - 1] + grid[i][j]; else if(j == 0 && i > 0) dp[j] = dp[j] + grid[i][j]; else dp[j] = min(dp[j], dp[j - 1]) + grid[i][j]; } } return dp[gridColSize - 1];}
0 0
- [LeetCode]64.Minimum Path Sum
- LeetCode --- 64. Minimum Path Sum
- LeetCode 64.Minimum Path Sum
- [Leetcode] 64. Minimum Path Sum
- [leetcode] 64.Minimum Path Sum
- [leetcode] 64.Minimum Path Sum
- LeetCode 64. Minimum Path Sum
- 64. Minimum Path Sum LeetCode
- [LeetCode]64. Minimum Path Sum
- leetcode 64. Minimum Path Sum
- [leetcode] 64. Minimum Path Sum
- LeetCode 64. Minimum Path Sum
- LeetCode *** 64. Minimum Path Sum
- leetcode 64. Minimum Path Sum
- 【leetcode】64. Minimum Path Sum
- Leetcode:64. Minimum Path Sum
- LeetCode-64.Minimum Path Sum
- LeetCode 64. Minimum Path Sum
- C++拷贝构造函数与函数声明的区分
- flex布局介绍
- git clone 分支
- studio 翻译插件ECTranslation
- 抽象类、接口
- LeetCode 64. Minimum Path Sum
- mysql DATE_FORMAT的用法API
- Java设计模式--中介者模式
- maven下配置ssm框架
- 搭建基于springmvc+freemarker+maven的web项目
- 事件、抽象方法
- [Contests]BestCoder Round #87 (1001-1003)
- 异常处理
- 防止dialog连续跳出