在C++语言实现中,如下:
vector<int> direction(-1,0,1,0,-1);
void dfs(const vector<vector<int>>& matrix,vector<vector<bool>>& can_reach,int r,int c)
{
//如果为true
if(can_reach[r][c])
{
return;
}
can_reach[r][c]=true;
int x,y;
//遍历上下左右节点
for(int i=0;i<4;++i)
{
x=r+direction[i],y=c+direction[i+1];
if(x>=0 && y<matrix.size() && matrix[r][c] <=matrix[x][y])
{
dfs(matrix,can_reach,x,y);
}
}
}
这一写法在搜索算法中比较常见。