递归、搜索与回溯-记忆化搜索:40.矩阵中的最长递增路径

题目链接:329. 矩阵中的最长递增路径(困难)

算法原理:

解法:DFS

Java代码:

java 复制代码
/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 王洋
 * Date: 2025-10-10
 * Time: 23:37
 */
class Solution {
    //329. 矩阵中的最长递增路径
    //吴小哲跟我写的一样
    int[] dx=new int[]{0,0,1,-1};
    int[] dy=new int[]{1,-1,0,0};
    int m,n;
    int[][] memo;
    public int longestIncreasingPath(int[][] matrix) {
        m=matrix.length;n=matrix[0].length;
        memo=new int[m][n];
        int ret=0;
        for(int i=0;i<m;i++){
            for(int j=0;j<n;j++){
                ret=Math.max(dfs(matrix,i,j),ret);
            }
        }
        return ret;
    }
    public int dfs(int[][] matrix,int i,int j){
        if(memo[i][j]!=0) return memo[i][j];
        int ret=1;
        for(int k=0;k<4;k++){
            int x=i+dx[k],y=j+dy[k];
            if(x<m&&y<n&&x>=0&&y>=0&&matrix[x][y]>matrix[i][j]){
                ret=Math.max(dfs(matrix,x,y)+1,ret);
            }
        }
        memo[i][j]=ret;
        return memo[i][j];
    }
}
相关推荐
Qhumaing12 小时前
C++学习:【PTA】数据结构 7-1 实验7-1(最小生成树-Prim算法)
c++·学习·算法
好大哥呀12 小时前
Java Web的学习路径
java·前端·学习
f***147712 小时前
SpringBoot实战:高效实现API限流策略
java·spring boot·后端
on the way 12312 小时前
day06-SpringDI 依赖注入
java·spring
C***115013 小时前
Spring aop 五种通知类型
java·前端·spring
BD_Marathon13 小时前
SpringBoot——多环境开发配置
java·spring boot·后端
代码N年归来仍是新手村成员14 小时前
【Java转Go】即时通信系统代码分析(一)基础Server 构建
java·开发语言·golang
踩坑记录14 小时前
leetcode hot100 3.无重复字符的最长子串 medium 滑动窗口(双指针)
python·leetcode
Z1Jxxx14 小时前
01序列01序列
开发语言·c++·算法