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)

leetcode 1301. 最大得分的路径数目

2020-07-26

Codeforces 354B 博弈, DP,记忆化搜索

bzoj5123[Lydsy12月赛]线段树的匹配 树形dp+记忆化搜索

着色方案(动态规划+记忆化搜索)