LeetCode_每日一题今日份_329.矩阵中的最长递增路径(没懂)
const int dirs[4][2] = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};
int rows, columns; //定义最终返回的最长递增路劲数组的行、列int longestIncreasingPath(int** matrix, int matrixSize, int* matrixColSize) { //主if (matrixSize == 0 || matrixColSize[0] == 0) {return 0;}rows = matrixSize;columns = matrixColSize[0];int** memo = (int**)malloc(sizeof(int*) * rows); //分配行空间for (int i = 0; i < rows; i++) {memo[i] = (int*)malloc(sizeof(int) * columns); //分配列空间memset(memo[i], 0, sizeof(int) * columns); //分配最终返回的最长递增路劲数组的空间}int ans = 0;for (int i = 0; i < rows; ++i) {for (int j = 0; j < columns; ++j) {ans = fmax(ans, dfs(matrix, i, j, memo)); //比较 求出最长递增路径}}free(memo);return ans;
}int dfs(int** matrix, int row, int column, int** memo) { //每个单元格的递增路径if (memo[row][column] != 0) {return memo[row][column];}++memo[row][column];for (int i = 0; i < 4; ++i) {int newRow = row + dirs[i][0], newColumn = column + dirs[i][1];if (newRow >= 0 && newRow < rows && newColumn >= 0 && newColumn < columns && matrix[newRow][newColumn] > matrix[row][column]) {memo[row][column] = fmax(memo[row][column], dfs(matrix, newRow, newColumn, memo) + 1);}}return memo[row][column];
}
LeetCode_每日一题今日份_329.矩阵中的最长递增路径(没懂)相关推荐
- 329. Longest Increasing Path in a Matrix 矩阵中的最长递增路径
给定一个整数矩阵,找出最长递增路径的长度. 对于每个单元格,你可以往上,下,左,右四个方向移动. 你不能在对角线方向上移动或移动到边界外(即不允许环绕). 示例 1: 输入: nums = [[9,9 ...
- 矩阵中的最长递增路径
矩阵中的最长递增路径 文章目录 矩阵中的最长递增路径 一.问题描述 **方法一:朴素的深度优先搜索 [超时]** **方法二:记忆化深度优先搜索 [通过]** **方法三:动态规划** **方法四:广 ...
- java某个起点出发的最长路径_【leetcode-动态规划】矩阵中的最长递增路径
[leetcode-动态规划]矩阵中的最长递增路径 题目: 给定一个整数矩阵,找出最长递增路径的长度. 对于每个单元格,你可以往上,下,左,右四个方向移动. 你不能在对角线方向上移动或移动到边界外(即 ...
- 329. 矩阵中的最长递增路径
2020-06-09 1.题目描述 矩阵中的最长递增路径 2.题解 在这里我们可以将其视作有向图,如果当前的数比其四周位置上的数要小的话,就构建一条从当前数指向其 周围的边,要求得最长的递增路径,那么 ...
- 算法-------矩阵中的最长递增路径(Java版本)
题目 给定一个整数矩阵,找出最长递增路径的长度.对于每个单元格,你可以往上,下,左,右四个方向移动. 你不能在对角线方向上移动或移动到边界外(即不允许环绕).示例 1:输入: nums = [[9,9 ...
- leetcode329. 矩阵中的最长递增路径(dfs)
给定一个整数矩阵,找出最长递增路径的长度.对于每个单元格,你可以往上,下,左,右四个方向移动. 你不能在对角线方向上移动或移动到边界外(即不允许环绕).示例 1:输入: nums = [[9,9,4] ...
- leetcode329. 矩阵中的最长递增路径
给定一个整数矩阵,找出最长递增路径的长度. 对于每个单元格,你可以往上,下,左,右四个方向移动. 你不能在对角线方向上移动或移动到边界外(即不允许环绕). 示例 1: 输入: nums = [ ...
- LeetCode 329. 矩阵中的最长递增路径(记忆化递归)
文章目录 1. 题目 2. 解题 2.1 记忆化递归 2.2 拓扑排序 1. 题目 给定一个整数矩阵,找出最长递增路径的长度. 对于每个单元格,你可以往上,下,左,右四个方向移动. 你不能在对角线方向 ...
- Leetcode--329. 矩阵中的最长递增路径
给定一个整数矩阵,找出最长递增路径的长度. 对于每个单元格,你可以往上,下,左,右四个方向移动. 你不能在对角线方向上移动或移动到边界外(即不允许环绕). 示例 1: 输入: nums = [ ...
最新文章
- 连续 3 年最受欢迎:Rust,香!
- Android UI之ImageView
- 线性代数导论5——SVD分解
- Atitit 存储引擎核心技术 总结目录1. 表的存储有三个文件:结构+数据+索引 12. 页式管理
- 用通俗的语言解释贝叶斯公式
- 回调函数Callback
- APF有源滤波器仿真,三相三线制 谐波电流检测模块基于p-q方法,ip-iq等方法
- word背景图片设置a4纸大小教程
- H264BSAnalyzer 使用方法
- 开发对接微信卡包会员卡_微信JS-SDK实现微信会员卡功能(给用户微信卡包里发送会员卡)...
- 立体匹配(Stereo Matching)
- 【ACWing】4246. 最短路径和
- C语言基本——求圆的面积和周长
- 单片机学习笔记——微机基础知识
- linux 只读文件 删除,linux – 我无法删除文件’rm:无法删除X只读文件系统’
- 【商品架构day3】京东商品系统的演进之路 - 如何抗住亿级流量
- 模拟输入H.264流,输出封装格式文件
- android框架服务 恶意软件,Android平台各类恶意软件及病毒概览
- python初学-下载模块后导入失败(windows)
- Linux下离线或在线安装libreoffice
热门文章
- 练习1-17 编写一个程序,打印长度大于80个字符的所有输入行.
- 写毕业论文的最容易踩的几个坑
- jsp中不能正常显示图片+不能正常显示bootstrap字体图标
- 什么叫侧面指纹识别_前面侧面还是背面?手机指纹识别放哪儿合适
- SLAM学习--2D激光SLAM-圣经-概率机器人学各种扩展
- saber 2012安装教程
- 北斗导航 | 惯性导航之基于Matlab的IMU与GPS融合(附源代码)
- MFC中Spin control的使用
- 托盘图标菜单_全新开始菜单和任务栏,Windows 10X 抢先体验
- 和php交互的过程_JavaScript学习笔记(二十三) 服务器PHP