64. Minimum Path Sum
来源:互联网 发布:手机淘宝兼职客服招聘 编辑:程序博客网 时间:2024/06/03 16:26
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.
Example 1:
[[1,3,1], [1,5,1], [4,2,1]]Given the above grid map, return
7
. Because the path 1→3→1→1→1 minimizes the sum.leetcode上做题还是蛮有成就感的。独立思考完成的第三题。解题思路:与unique paths有些类似。建立一个二维数组保存每种grid下的路径的最小和。并且,下一步的最小和依赖于上一步的最小和。得到了递推式:
mins[i][j] = grid[i][j] + min(mins[i-1][j],mins[i][j-1]);
class Solution {public: int minPathSum(vector<vector<int>>& grid) { vector<vector<int>> mins(grid.size(), vector<int>(grid[0].size(), 0)); //初始化,没有成功?访问vector越界mins[0][0] = grid[0][0];for (int i = 1; i < grid[0].size(); i++){mins[0][i] = mins[0][i - 1] + grid[0][i];} for (int i = 1; i < grid.size(); i++){mins[i][0] = mins[i - 1][0] + grid[i][0];//vector访问不要越界了}if(grid.size()>1)for (int i = 1; i < grid.size(); i++)for (int j = 1; j < grid[0].size(); j++)//注意访问的起始下表{mins[i][j] = grid[i][j] + min(mins[i-1][j],mins[i][j-1]);}return mins[grid.size()-1][grid[0].size()-1]; }};
阅读全文
0 0
- 64. Minimum Path Sum
- 64. Minimum Path Sum
- 64.Minimum Path Sum
- 64. Minimum Path Sum
- 64. Minimum Path Sum
- 64. Minimum Path Sum
- 64. Minimum Path Sum
- 64. Minimum Path Sum
- 64. Minimum Path Sum
- 64. Minimum Path Sum
- 64. Minimum Path Sum
- 64. Minimum Path Sum
- 64. Minimum Path Sum
- 64. Minimum Path Sum
- 64. Minimum Path Sum
- 64. Minimum Path Sum
- 64. Minimum Path Sum
- 64.Minimum Path Sum
- codeforces 877 problem E Danil and a Part-time Job 【dfs序 + 线段树区间异或修改】
- lambda expressions are not supported at this language level
- 一个适合绝大多数场景下的批量任务线程池
- Android Studio导入github下载的project和module的正确姿势
- 选用pdf转cad最好的软件转换操作
- 64. Minimum Path Sum
- [vijos1070]新年趣事之游戏(次小生成树)
- 图的储存结构(*链式前向星)
- 《Java专栏》— 接口
- Xcode执行Analyze静态分析
- java的冒泡排序
- 拓扑排序(链式前向星+队列实现)
- Android Studio 获取SHA1
- 每天回顾linux命令(unlink)