zoukankan      html  css  js  c++  java
  • LeetCode Minimum Path Sum (简单DP)

    题意:

      给一个n*m的矩阵,每次可以往下或右走,经过的格子中的数字之和就是答案了,答案最小为多少?

    思路:

      比较水,只是各种空间利用率而已。

      如果可以在原空间上作修改。

     1 class Solution {
     2 public:
     3     int minPathSum(vector<vector<int>>& grid) {
     4         int n=grid.size()-1;
     5         int m=grid[n].size()-1;
     6         for(int j=1; j<=m; j++)    
     7             grid[0][j]+=grid[0][j-1];
     8         for(int i=1; i<=n; i++)
     9         {
    10             grid[i][0]+=grid[i-1][0];    
    11             for(int j=1; j<=m; j++)
    12                 grid[i][j]+=min(grid[i-1][j], grid[i][j-1]);
    13         }
    14         return grid[n][m];
    15     }
    16 };
    AC代码

      

      至少也要用O(m)的空间吧。

     1 class Solution {
     2 public:
     3     int minPathSum(vector<vector<int>>& grid) {
     4         vector<int> dp(grid[0].begin(),grid[0].end());
     5         int n=grid.size()-1, m=grid[n].size()-1;
     6         for(int j=1; j<=m; j++)    
     7             dp[j]+=dp[j-1];
     8         for(int i=1; i<=n; i++)
     9         {
    10             dp[0]+=grid[i][0];    
    11             for(int j=1; j<=m; j++)
    12                 dp[j]=grid[i][j]+min(dp[j-1], dp[j]);
    13         }
    14         return dp[m];
    15     }
    16 };
    AC代码
  • 相关阅读:
    学习——HTML5
    XML解析——SAX解析以及更方便的解析工具(JDOM、DOM4J)
    C#笔记 -----扩展方法
    Socket实现异步通信
    基础套接字的C#网络编程
    线程
    sqlserver 索引
    SQL Server用户自定义函数
    sqlserver函数
    用户控件和自定义控件的区别
  • 原文地址:https://www.cnblogs.com/xcw0754/p/4931544.html
Copyright © 2011-2022 走看看