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.矩阵中的最长递增路径(没懂)相关推荐

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

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

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

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

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

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

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

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

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

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

  6. leetcode329. 矩阵中的最长递增路径(dfs)

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

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

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

  8. LeetCode 329. 矩阵中的最长递增路径(记忆化递归)

    文章目录 1. 题目 2. 解题 2.1 记忆化递归 2.2 拓扑排序 1. 题目 给定一个整数矩阵,找出最长递增路径的长度. 对于每个单元格,你可以往上,下,左,右四个方向移动. 你不能在对角线方向 ...

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

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

最新文章

  1. 连续 3 年最受欢迎:Rust,香!
  2. Android UI之ImageView
  3. 线性代数导论5——SVD分解
  4. Atitit 存储引擎核心技术 总结目录1. 表的存储有三个文件:结构+数据+索引 12. 页式管理
  5. 用通俗的语言解释贝叶斯公式
  6. 回调函数Callback
  7. APF有源滤波器仿真,三相三线制 谐波电流检测模块基于p-q方法,ip-iq等方法
  8. word背景图片设置a4纸大小教程
  9. H264BSAnalyzer 使用方法
  10. 开发对接微信卡包会员卡_微信JS-SDK实现微信会员卡功能(给用户微信卡包里发送会员卡)...
  11. 立体匹配(Stereo Matching)
  12. 【ACWing】4246. 最短路径和
  13. C语言基本——求圆的面积和周长
  14. 单片机学习笔记——微机基础知识
  15. linux 只读文件 删除,linux – 我无法删除文件’rm:无法删除X只读文件系统’
  16. 【商品架构day3】京东商品系统的演进之路 - 如何抗住亿级流量
  17. 模拟输入H.264流,输出封装格式文件
  18. android框架服务 恶意软件,Android平台各类恶意软件及病毒概览
  19. python初学-下载模块后导入失败(windows)
  20. Linux下离线或在线安装libreoffice

热门文章

  1. 练习1-17 编写一个程序,打印长度大于80个字符的所有输入行.
  2. 写毕业论文的最容易踩的几个坑
  3. jsp中不能正常显示图片+不能正常显示bootstrap字体图标
  4. 什么叫侧面指纹识别_前面侧面还是背面?手机指纹识别放哪儿合适
  5. SLAM学习--2D激光SLAM-圣经-概率机器人学各种扩展
  6. saber 2012安装教程
  7. 北斗导航 | 惯性导航之基于Matlab的IMU与GPS融合(附源代码)
  8. MFC中Spin control的使用
  9. 托盘图标菜单_全新开始菜单和任务栏,Windows 10X 抢先体验
  10. 和php交互的过程_JavaScript学习笔记(二十三) 服务器PHP