参考代码:
int dfs(int** grid,int gridSize,int gridColSize,int i,int j)
{
if( i<0 || i>=gridSize|| j<0 || j>=gridColSize || grid[i][j]==0)
{
return 0;
}
//防止回头
int temp=grid[i][j];
grid[i][j]=0;
//四个方向递归
int left=dfs(grid,gridSize,gridColSize,i,j-1);
int right=dfs(grid,gridSize,gridColSize,i,j+1);
int up=dfs(grid,gridSize,gridColSize,i-1,j);
int down=dfs(grid,gridSize,gridColSize,i+1,j);
int result=fmax(left,fmax(right,fmax(up,down)));
//恢复数据
grid[i][j]=temp;
return result+temp;
}
int getMaximumGold(int** grid, int gridSize, int* gridColSize){
int maxGod=0;
for(int i=0;i<gridSize;i++)
{
for(int j=0;j<gridColSize[0];j++)
{
maxGod=fmax(maxGod,dfs(grid,gridSize,gridColSize[0],i,j));
}
}
return maxGod;
}
参考:
作者:me4731weini-w
链接:https://leetcode-cn.com/problems/path-with-maximum-gold/solution/hui-su-cyu-yan-by-me4731weini-w-gy0r/