下面是dfs代码块,要怎么优化才行啊,O2也过不了
void dfs(int r, int c, int fr, int fc)
{
if (r < 1 || r > n || c < 1 || c > m)
return;
if (a[fr][fc] <= a[r][c])
return;
if (flag[r][c] == 1)
{
if (b[r][c].begin != 0 && b[r][c].end != 0)
update(b[fr][fc], b[r][c]);
return;
}
dfs(r + 1, c, r, c);
dfs(r, c + 1, r, c);
dfs(r - 1, c, r, c);
dfs(r, c - 1, r, c);
if (b[r][c].begin != 0 && b[r][c].end != 0)
update(b[fr][fc], b[r][c]);
flag[r][c] = 1;
return;
}