1. 程式人生 > 其它 >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; // 復原 } };