2328. 网格图中递增路径的数目(记忆化搜索)
Posted Harris-H
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2328. 网格图中递增路径的数目(记忆化搜索)相关的知识,希望对你有一定的参考价值。
2328. 网格图中递增路径的数目(记忆化搜索)
原理矩阵的四周扩散,也可以记忆化dp。
时间复杂度: O ( n m ) O(nm) O(nm)
class Solution
public:
int countPaths(vector<vector<int>>& a)
int n =a.size(),m=a[0].size();
vector<vector<int> >f(n,vector<int>(m,-1));
int d[4][2] =0,1,0,-1,1,0,-1,0;
const int mod = 1e9+7;
function<int(int,int)> dfs = [&](int x,int y)
if(~f[x][y]) return f[x][y];
int ans = 1;
for(int i=0;i<4;i++)
int nx = x+d[i][0],ny=y+d[i][1];
if(nx>=0 && nx<n && ny>=0 && ny<m && a[nx][ny] >a[x][y])
ans=(ans+dfs(nx,ny))%mod;
return f[x][y] =ans;
;
int ans=0;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++) ans=(ans+dfs(i,j))%mod;
return ans;
;
以上是关于2328. 网格图中递增路径的数目(记忆化搜索)的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode之深度优先搜索(DFS)专题-DFS+记忆化 329. 矩阵中的最长递增路径(Longest Increasing Path in a Matrix)