当前位置: 首页 > news >正文

Python | Leetcode Python题解之第329题矩阵中的最长递增路径

题目:

题解:

class Solution:DIRS = [(-1, 0), (1, 0), (0, -1), (0, 1)]def longestIncreasingPath(self, matrix: List[List[int]]) -> int:if not matrix:return 0rows, columns = len(matrix), len(matrix[0])outdegrees = [[0] * columns for _ in range(rows)]queue = collections.deque()for i in range(rows):for j in range(columns):for dx, dy in Solution.DIRS:newRow, newColumn = i + dx, j + dyif 0 <= newRow < rows and 0 <= newColumn < columns and matrix[newRow][newColumn] > matrix[i][j]:outdegrees[i][j] += 1if outdegrees[i][j] == 0:queue.append((i, j))ans = 0while queue:ans += 1size = len(queue)for _ in range(size):row, column = queue.popleft()for dx, dy in Solution.DIRS:newRow, newColumn = row + dx, column + dyif 0 <= newRow < rows and 0 <= newColumn < columns and matrix[newRow][newColumn] < matrix[row][column]:outdegrees[newRow][newColumn] -= 1if outdegrees[newRow][newColumn] == 0:queue.append((newRow, newColumn))return ans

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 手写Redis缓存系统,第三章:持久化-增加可靠性
  • SuccBI+低代码文档中心 — 可视化分析(仪表板)(下)
  • Linux-Shell入门-05
  • 白骑士的Matlab教学实战项目篇 4.3 控制系统设计
  • 保研考研机试攻略:第一章——从零开始
  • 怎样才算精通 Excel?
  • linux之网络子系统-GRO机制分析
  • 09正弦稳态电路的分析
  • C语言学习笔记 Day10(指针--中)
  • 13.StringRedisTemplete使用
  • 巧用Array.forEach:简化循环与增强代码可读性;Array.forEach怎么用;面对大量数据时怎么提高Array.forEach的性能
  • C语言:字符函数,字符串函数
  • 《计算机网络 - 自顶向下方法》阅读笔记
  • 28. Hibernate 中的常见坑
  • webassembly初探
  • CSS中外联样式表代表的含义
  • download使用浅析
  • happypack两次报错的问题
  • JavaScript创建对象的四种方式
  • JavaScript学习总结——原型
  • Js基础知识(四) - js运行原理与机制
  • js数组之filter
  • mysql 数据库四种事务隔离级别
  • vue-cli3搭建项目
  • webpack入门学习手记(二)
  • 大数据与云计算学习:数据分析(二)
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 聊聊redis的数据结构的应用
  • 模型微调
  • 前端面试之闭包
  • 入门级的git使用指北
  • 从如何停掉 Promise 链说起
  • ​【经验分享】微机原理、指令判断、判断指令是否正确判断指令是否正确​
  • ‌分布式计算技术与复杂算法优化:‌现代数据处理的基石
  • # Redis 入门到精通(九)-- 主从复制(1)
  • # wps必须要登录激活才能使用吗?
  • ###项目技术发展史
  • #etcd#安装时出错
  • $ git push -u origin master 推送到远程库出错
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (笔记)M1使用hombrew安装qemu
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (附源码)springboot教学评价 毕业设计 641310
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (四十一)大数据实战——spark的yarn模式生产环境部署
  • (自用)仿写程序
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .net dataexcel winform控件 更新 日志
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .net对接阿里云CSB服务