close
[[1,3,1],
 [1,5,1],
 [4,2,1]]

想成九宮格

1→3→1→1→1  是最小路徑

class Solution {
public:
    int minPathSum(vector<vector<int>>& grid) {
        int m=grid.size();
        int n=grid[0].size();
        n_g=vector<vector<int>>(m,vector<int>(n,0));
       return minPathSum(m-1,n-1,grid);
    }
private:
    int minPathSum(int m,int n,vector<vector<int>>& grid){
        if(m==0&&n==0)return grid[m][n];
        if(m<0||n<0)return INT_MAX;
        if(n_g[m][n]>0)return n_g[m][n];
        return n_g[m][n]=grid[m][n]+min(minPathSum(m-1,n,grid),minPathSum(m,n-1,grid));
    }
    vector<vector<int>> n_g;
};

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 學習程式 的頭像
    學習程式

    程式學習日記,如果我幫助了你請讓我知道

    學習程式 發表在 痞客邦 留言(0) 人氣()