mardi 4 août 2020

'error:

I am solving a question where we want to find maximum distance between top-left corner of a matrix and bottom right corner of a matrix but I got these error. I had passed a 2d vector to a function but it gave a error:

Line 28: error: <identifier> expected
    void dfs(int i,int j,vector<vector<int>>& path,int[][]& grid)
                                            ^
Line 28: error: <identifier> expected
    void dfs(int i,int j,vector<vector<int>>& path,int[][]& grid)
                                                          ^
Line 28: error: <identifier> expected
    void dfs(int i,int j,vector<vector<int>>& path,int[][]& grid)
                                                                ^
3 errors

And here is my code..

class Solution {
   static bool isvalid(int i,int j,int[][] grid)
    {
        if(i>=0 && j>=0 && i<grid.length && j<grid[0].length)
        {
            return true;
        }
        return false;
    }
    public int minPathSum(int[][] grid) {
        int row=sizeof(grid);
        int col=sizeof(grid)/sizeof(grid[0]);
       vector<vector<int>>path;
        for(int i=0;i<row;i++)
        {
            for(int j=0;j<col;j++)
            {
                path[i].push_back(0);
            }
        }
        path[0][0]=grid[0][0];
        path[1][0]=grid[1][0]+grid[0][0];
        path[0][1]=grid[0][1]+grid[0][0];
        dfs(0,0,path,grid);
        return path[grid.length-1][grid[0].length-1];
    }
    
    void dfs(int i,int j,vector<vector<int>>& path,int[][]& grid)
    {
        if(isvalid(i,j,grid))
        {
            if(i == 0 && j == 0)
            {
                dfs(i+1,j,path,grid);
                dfs(i,j+1,path,grid);
            }
            else if(i == 0)
            {
                path[i][j]=grid[i][j]+path[i][j-1];
                dfs(i+1,j,path,grid); 
                dfs(i,j+1,path,grid);
            }
            else if(j == 0)
            {
                path[i][j]=grid[i][j]+path[i-1][j];
                dfs(i+1,j,path,grid); 
                dfs(i,j+1,path,grid);
            }
            dfs(i+1,j,path,grid); 
            dfs(i,j+1,path,grid);
        }
        return ;
    }
}

I am not able to find out where I went wrong.Please help

Thanks..

Aucun commentaire:

Enregistrer un commentaire