leetcode-64. 最小路径和

时间:2021-07-17
本文章向大家介绍leetcode-64. 最小路径和,主要包括leetcode-64. 最小路径和使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

和62题不同路径一样,使用dfs方法同样超时。

class Solution {
public:
    vector<int> res;
    int minPathSum(vector<vector<int>>& grid) {
        int m = grid.size(); 
        int n = grid[0].size();
        vector<vector<bool>> visited(m, vector<bool>(n,false));
        path(grid,visited,0,0,0);
        sort(res.begin(), res.end());

        return res[0];
    }
    void path(vector<vector<int>> grid,vector<vector<bool>> visited,int i, int j, int sum){
        // int temp = sum;
        int m = grid.size(); 
        int n = grid[0].size();
        if(i<0||i>=m||j<0||j>=n||visited[i][j])
            return;
        if(i==m-1&&j==n-1){
            sum = sum + grid[i][j];
            res.push_back(sum);
            return;
        }
        sum = sum + grid[i][j];
        visited[i][j] = true;
        path(grid, visited,i,j+1,sum);
        path(grid, visited,i+1,j,sum);
        visited[i][j] = false;  // 复原
    }
};

原文地址:https://www.cnblogs.com/ymec/p/15023337.html