leetcode329. 矩阵中的最长递增路径
给定一个整数矩阵,找出最长递增路径的长度。
对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即不允许环绕)。
示例 1:
输入: nums =
[
[9,9,4],
[6,6,8],
[2,1,1]
]
输出: 4
解释: 最长递增路径为 [1, 2, 6, 9]。
示例 2:
输入: nums =
[
[3,4,5],
[3,2,6],
[2,2,1]
]
输出: 4
解释: 最长递增路径是 [3, 4, 5, 6]。注意不允许在对角线方向上移动。
思路:记忆化搜索即可。
public class Solution {private static final int[][] dirs = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}};private int m, n;public int longestIncreasingPath(int[][] matrix) {if (matrix.length == 0) return 0;m = matrix.length; n = matrix[0].length;int[][] cache = new int[m][n];int ans = 0;for (int i = 0; i < m; ++i)for (int j = 0; j < n; ++j)ans = Math.max(ans, dfs(matrix, i, j, cache));return ans;}private int dfs(int[][] matrix, int i, int j, int[][] cache) {if (cache[i][j] != 0) return cache[i][j];for (int[] d : dirs) {int x = i + d[0], y = j + d[1];if (0 <= x && x < m && 0 <= y && y < n && matrix[x][y] > matrix[i][j])cache[i][j] = Math.max(cache[i][j], dfs(matrix, x, y, cache));}return ++cache[i][j];}
}
leetcode329. 矩阵中的最长递增路径相关推荐
- Leetcode--329. 矩阵中的最长递增路径
给定一个整数矩阵,找出最长递增路径的长度. 对于每个单元格,你可以往上,下,左,右四个方向移动. 你不能在对角线方向上移动或移动到边界外(即不允许环绕). 示例 1: 输入: nums = [ ...
- leetcode329. 矩阵中的最长递增路径(dfs)
给定一个整数矩阵,找出最长递增路径的长度.对于每个单元格,你可以往上,下,左,右四个方向移动. 你不能在对角线方向上移动或移动到边界外(即不允许环绕).示例 1:输入: nums = [[9,9,4] ...
- 329. Longest Increasing Path in a Matrix 矩阵中的最长递增路径
给定一个整数矩阵,找出最长递增路径的长度. 对于每个单元格,你可以往上,下,左,右四个方向移动. 你不能在对角线方向上移动或移动到边界外(即不允许环绕). 示例 1: 输入: nums = [[9,9 ...
- 矩阵中的最长递增路径
矩阵中的最长递增路径 文章目录 矩阵中的最长递增路径 一.问题描述 **方法一:朴素的深度优先搜索 [超时]** **方法二:记忆化深度优先搜索 [通过]** **方法三:动态规划** **方法四:广 ...
- java某个起点出发的最长路径_【leetcode-动态规划】矩阵中的最长递增路径
[leetcode-动态规划]矩阵中的最长递增路径 题目: 给定一个整数矩阵,找出最长递增路径的长度. 对于每个单元格,你可以往上,下,左,右四个方向移动. 你不能在对角线方向上移动或移动到边界外(即 ...
- 329. 矩阵中的最长递增路径
2020-06-09 1.题目描述 矩阵中的最长递增路径 2.题解 在这里我们可以将其视作有向图,如果当前的数比其四周位置上的数要小的话,就构建一条从当前数指向其 周围的边,要求得最长的递增路径,那么 ...
- 329 矩阵中的最长递增路径
题目描述: 给定一个整数矩阵,找出最长递增路径的长度. 对于每个单元格,你可以往上,下,左,右四个方向移动. 你不能在对角线方向上移动或移动到边界外(即不允许环绕). 示例 1: 输入: nums = ...
- 算法-------矩阵中的最长递增路径(Java版本)
题目 给定一个整数矩阵,找出最长递增路径的长度.对于每个单元格,你可以往上,下,左,右四个方向移动. 你不能在对角线方向上移动或移动到边界外(即不允许环绕).示例 1:输入: nums = [[9,9 ...
- LeetCode 329. 矩阵中的最长递增路径(记忆化递归)
文章目录 1. 题目 2. 解题 2.1 记忆化递归 2.2 拓扑排序 1. 题目 给定一个整数矩阵,找出最长递增路径的长度. 对于每个单元格,你可以往上,下,左,右四个方向移动. 你不能在对角线方向 ...
最新文章
- Mac环境下svn的使用
- MySQL启动关闭添加到 /etc/init.d/mysqld
- MySQL Windows ZIP 免费安装和启动设置
- UnicodeEncodeError: 'UCS-2' codec can't encode characters in position 8-8: Non-BMP character not sup
- 服务器工具个人免费版下载使用,xshell个人免费版,xftp个人免费版
- 一起用ipython
- Python selenium web UI之Chrome 与 Chromedriver对应版本映射表及下载地址和配置(windows, Mac OS)...
- juc是什么java_JUC简介
- 信奥中的数学:信息论基础
- linux安装pytorch-GPU版本
- 2.Rails程序框架
- netbeasn支持php7吗,php7+nginx+netbeans使用debug配置注意
- 禁用 device/credential guard_iOS 13.3.1 Beta版中引入了禁用U1超宽带芯片的开关
- Python(二):基本数据类型、序列的基本操作
- Sql Server快速入门
- js获取当前页面url信息
- Linux驱动开发: FrameBuffe(LCD)驱动开发
- 电压负反馈放大电路(基于三极管)
- java对象为什么要实现序列化
- Edit Control响应全选(Ctrl+A)
热门文章
- ffmpeg php linux,linux(php环境) 安装ffmpeg
- mongodb 库数量限制_MongoDB in 数量限制
- java arraylist范围_Java常见集合之ArrayList深入分析
- jmeter找不到java_Windows下Jmeter安装出现Not able to find Java executable or version问题解决方案...
- 【转】C#开发奇技淫巧二:根据dll文件加载C++或者Delphi插件
- 【转】一键将Web应用发布到云-Azure Web App!
- visual-studio – 使用TFS 2010防止在Visual Studio 2012上签入pdb文件
- (译)你应该知道的jQuery技巧
- Ubuntu下安装Chrome浏览器的两个方法
- 提供写入的数据少于指定的数据_指定范围数据的汇总