给定一个整数矩阵,找出最长递增路径的长度。对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即不允许环绕)。示例 1:输入: nums =
[[9,9,4],[6,6,8],[2,1,1]
]
输出: 4
解释: 最长递增路径为 [1, 2, 6, 9]。

代码

class Solution {int[][] check;public int longestIncreasingPath(int[][] matrix) {int[][] dir = new int[][]{{-1, 0}, {1, 0}, {0, 1}, {0, -1}};if(matrix.length==0) return 0;int n=matrix.length,m=matrix[0].length;check=new int[n][m];//记录下节点的最长递增路径int res=0;for(int i=0;i<n;i++)for(int j=0;j<m;j++){if(check[i][j]==0)//当前没有计算路径长度IncreasingPath(matrix,i,j,dir);res= Math.max(res,check[i][j]);//比较得出最大值}return  res;}public int IncreasingPath(int[][] matrix,int x,int y,int[][] dir) {if(check[x][y]!=0) return check[x][y];int temp=0;check[x][y]=1;//以当前节点为起点for(int[] d:dir)//遍历4个方向{int nextX=d[0]+x,nextY=d[1]+y;if(nextX<0||nextY<0||nextX>=matrix.length||nextY>=matrix[0].length||matrix[nextX][nextY]<=matrix[x][y]) continue;//不满足的节点不访问temp= Math.max(temp,IncreasingPath(matrix,nextX,nextY,dir));//找出最长路径}check[x][y]+=temp;return check[x][y];}
}

leetcode329. 矩阵中的最长递增路径(dfs)相关推荐

  1. Leetcode--329. 矩阵中的最长递增路径

    给定一个整数矩阵,找出最长递增路径的长度. 对于每个单元格,你可以往上,下,左,右四个方向移动. 你不能在对角线方向上移动或移动到边界外(即不允许环绕). 示例 1: 输入: nums =  [   ...

  2. leetcode329. 矩阵中的最长递增路径

    给定一个整数矩阵,找出最长递增路径的长度. 对于每个单元格,你可以往上,下,左,右四个方向移动. 你不能在对角线方向上移动或移动到边界外(即不允许环绕). 示例 1: 输入: nums =  [   ...

  3. [Leetcode][第329题][JAVA][矩阵中的最长递增路径][DFS][拓扑排序]

    [问题描述][中等] [解答思路] 1. 记忆化深度优先搜索 复杂度 class Solution {public int[][] dirs = {{-1, 0}, {1, 0}, {0, -1}, ...

  4. 329. Longest Increasing Path in a Matrix 矩阵中的最长递增路径

    给定一个整数矩阵,找出最长递增路径的长度. 对于每个单元格,你可以往上,下,左,右四个方向移动. 你不能在对角线方向上移动或移动到边界外(即不允许环绕). 示例 1: 输入: nums = [[9,9 ...

  5. 矩阵中的最长递增路径

    矩阵中的最长递增路径 文章目录 矩阵中的最长递增路径 一.问题描述 **方法一:朴素的深度优先搜索 [超时]** **方法二:记忆化深度优先搜索 [通过]** **方法三:动态规划** **方法四:广 ...

  6. java某个起点出发的最长路径_【leetcode-动态规划】矩阵中的最长递增路径

    [leetcode-动态规划]矩阵中的最长递增路径 题目: 给定一个整数矩阵,找出最长递增路径的长度. 对于每个单元格,你可以往上,下,左,右四个方向移动. 你不能在对角线方向上移动或移动到边界外(即 ...

  7. 329. 矩阵中的最长递增路径

    2020-06-09 1.题目描述 矩阵中的最长递增路径 2.题解 在这里我们可以将其视作有向图,如果当前的数比其四周位置上的数要小的话,就构建一条从当前数指向其 周围的边,要求得最长的递增路径,那么 ...

  8. 329 矩阵中的最长递增路径

    题目描述: 给定一个整数矩阵,找出最长递增路径的长度. 对于每个单元格,你可以往上,下,左,右四个方向移动. 你不能在对角线方向上移动或移动到边界外(即不允许环绕). 示例 1: 输入: nums = ...

  9. 算法-------矩阵中的最长递增路径(Java版本)

    题目 给定一个整数矩阵,找出最长递增路径的长度.对于每个单元格,你可以往上,下,左,右四个方向移动. 你不能在对角线方向上移动或移动到边界外(即不允许环绕).示例 1:输入: nums = [[9,9 ...

最新文章

  1. HNOI2019游记
  2. 聚集索引与非聚集索引的总结
  3. Ubuntu 16.04 安装JDK
  4. RabbitMQ消息手动应答生产者
  5. 结果显示窗口如何缩小_【操作教程】零基础如何学习PS与Sai?
  6. Versant 对象型数据库
  7. 【原创】利用腾讯和百度的AI接口识别验证码
  8. 组了个视频号的局,汇报下数据!
  9. 原生js写简单轮播图方式1-从左向右滑动
  10. 对冲基金很需要:K、Q在哪里?
  11. Python程序发布(打包)及pyInstaller、cx_Freeze工具使用介绍
  12. 金蝶K/3WISE V14.0安装包下载地址,金蝶K3 WISE V14.0安装包资源包下载链接
  13. 淘宝双11的服务器架构分析(1)
  14. 互联网晚报 | 12月5日 星期日 | 饿了么启用AI技术研发新菜品;搜狐将布局知识直播;《英雄联盟手游》获选苹果年度游戏...
  15. TeXLive升级教程
  16. python中re.group()
  17. 1919: 【提高】滑翔翼
  18. 铁甲雄兵哪个服务器人最多,超级玩家第三期——铁甲雄兵全区最高等级玩家
  19. 计算机文化学习笔记3
  20. java报错The method get_discount() is undefined for the type该如何处理?

热门文章

  1. 11-散列3 QQ帐户的申请与登陆 (25 分)
  2. 疯狂涨知识!Java多态实现原理技术总监都拍手叫好
  3. 终于有人把安卓程序员必学知识点全整理出来了,BAT大厂面试总结
  4. Odoo免费开源企业信息化平台助力企业成功
  5. EF ++属性会更新实体
  6. AndroidStudio怎样导入library项目开源库 - 转
  7. LVS的四种模式的实现
  8. 1,滑动验证,前后台接口
  9. RDLC系列之五 初试XAML
  10. java 数组的拷贝 对象数组的拷贝 System.arraycopy函数