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