leetcode 64. Minimum Path Sum DP动态规划
来源:互联网 发布:网络博客推广话术 编辑:程序博客网 时间:2024/06/08 04:47
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.
和上一道题leetcode 62. Unique Paths 和 leetcode 63. Unique Paths II 一模一样,不过这里求的是最小的路径之和。
代码如下:
public class Solution { /* * 这个和之前的动态规划方法很类似, * */ public int minPathSum(int[][] mat) { //特殊情况 if(mat==null || mat.length<=0) return 0; int [][]vis=new int[mat.length][mat[0].length]; vis[0][0]=mat[0][0]; //动态规划的第一行和第一列的初始化,注意要累积权重值 for(int i=1;i<mat.length;i++) vis[i][0]=vis[i-1][0]+mat[i][0]; for(int i=1;i<mat[0].length;i++) vis[0][i]=vis[0][i-1]+mat[0][i]; //每一次更新最小的值 for(int i=1;i<mat.length;i++) { for(int j=1;j<mat[0].length;j++) vis[i][j]=Math.min(vis[i-1][j],vis[i][j-1]) + mat[i][j]; } return vis[mat.length-1][mat[0].length-1]; }}
和上面的体基本保持一致,就是一个DP的简单应用
代码如下:
#include <iostream>#include <vector>#include <algorithm>using namespace std;class Solution {public: int minPathSum(vector<vector<int>>& gg) { if (gg.size() <= 0) return 0; vector<vector<int>> dp = gg; for (int i = 1; i < gg.size(); i++) dp[i][0] = dp[i-1][0] + gg[i][0]; for (int i = 1; i < gg[0].size(); i++) dp[0][i] = dp[0][i - 1] + gg[0][i]; for (int i = 1; i < gg.size(); i++) { for (int j = 1; j < gg[0].size(); j++) { dp[i][j] = gg[i][j] + min(dp[i-1][j], dp[i][j-1]); } } return dp[dp.size() - 1][dp[0].size() - 1]; }};
阅读全文
0 0
- leetcode 64. Minimum Path Sum DP动态规划
- LeetCode 64. Minimum Path Sum 动态规划
- [LeetCode] [动态规划] Minimum Path Sum
- Leetcode 动态规划 Minimum Path Sum
- LeetCode || Minimum Path Sum 动态规划思想
- LeetCode Minimum Path Sum(动态规划)
- leetcode-64-Minimum Path Sum 动态规划
- leetcode[63] Minimum Path Sum 动态规划
- leetcode 64. Minimum Path Sum-最小路径和|动态规划
- Leetcode解题笔记 64. Minimum Path Sum [Medium] 动态规划
- 64. Minimum Path Sum 动态规划
- 【动态规划】minimum-path-sum
- 动态规划----Minimum Path Sum
- LeetCode OJ-64.Minimum Path Sum(DP)
- LeetCode-64-Minimum Path Sum(动态规划)-Medium
- LeetCode 64 Minimum Path Sum(动态规划)
- 【Leetcode】Minimum Path Sum (DP)
- [leetcode][DP] Minimum Path Sum
- docker 阿里云 镜像加速
- Ubuntu Server 16.04虚拟机安装
- win7配java环境变量问题,无法识别java_home,需要绝对路径
- Volatile解释
- 《Java核心技术(卷一)》读书笔记——泛型编程
- leetcode 64. Minimum Path Sum DP动态规划
- java.sql.SQLException: ORA-28000: the account is locked?
- c语言中小数取整
- vue.js 手机网页调起支付宝支付
- fff
- 内存堆和栈的区别
- Linux下网卡eth1如何修改为eth0
- swift内存管理中的引用计数
- Java面试题目总结与回答