Я решаю вопрос, в котором мы хотим найти максимальное расстояние между верхним левым углом матрицы и нижним правым углом матрицы, но я получил эту ошибку. Я передал 2-мерный вектор функции, но она выдала ошибку:
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
А вот мой код ..
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 ;
}
}
Я не могу узнать, куда я пошел неправильно. Пожалуйста, помогите
Спасибо ..