文章目录

  • 1. 题目
  • 2. 解题

1. 题目

给定一个01矩阵 M,找到矩阵中最长的连续1线段。
这条线段可以是水平的、垂直的、对角线的或者反对角线的。

示例:
输入:
[[0,1,1,0],[0,1,1,0],[0,0,0,1]]
输出: 3
提示: 给定矩阵中的元素数量不会超过 10,000。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-line-of-consecutive-one-in-matrix
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 建立四个方向的DP数组即可,求各方向的前缀和,遇到0从新开始累计
class Solution {public:int longestLine(vector<vector<int>>& M) {if(M.empty() || M[0].empty())return 0;int m = M.size(), n = M[0].size(), i, j;vector<vector<int>> h(m,vector<int>(n,0)),v(m,vector<int>(n,0)), p_45(m,vector<int>(n,0)),n_45(m,vector<int>(n,0));int maxlen = 0;for(i = 0; i < m; i++) {for(j = 0; j < n; j++){if(M[i][j] == 0)continue;h[i][j] = i-1>=0 ? h[i-1][j]+1 : 1;v[i][j] = j-1>=0 ? v[i][j-1]+1 : 1;p_45[i][j] = (i>0 && j+1 <n) ? p_45[i-1][j+1]+1 : 1;n_45[i][j] = (i>0 && j>0) ? n_45[i-1][j-1]+1 : 1;maxlen = max(maxlen,h[i][j]);maxlen = max(maxlen,v[i][j]);maxlen = max(maxlen,p_45[i][j]);maxlen = max(maxlen,n_45[i][j]);}}return maxlen;}
};

120 ms 28.3 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 562. 矩阵中最长的连续1线段(DP)相关推荐

  1. LeetCode 549. 二叉树中最长的连续序列(树上DP)

    文章目录 1. 题目 2. 解题 1. 题目 给定一个二叉树,你需要找出二叉树中最长的连续序列路径的长度. 请注意,该路径可以是递增的或者是递减. 例如,[1,2,3,4] 和 [4,3,2,1] 都 ...

  2. LeetCode—5757. 矩阵中最大的三个菱形和(Get Biggest ...)[中等]—分析及代码(Java)

    LeetCode--5757. 矩阵中最大的三个菱形和[Get Biggest Three Rhombus Sums in a Grid][中等]--分析及代码[Java] 一.题目 二.分析及代码 ...

  3. LeetCode 840. 矩阵中的幻方(数学)

    1. 题目 3 x 3 的幻方是一个填充有从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等. 给定一个由整数组成的 grid,其中有多少个 3 × 3 的 ...

  4. LeetCode 1380. 矩阵中的幸运数(set)

    1. 题目 给你一个 m * n 的矩阵,矩阵中的数字 各不相同 .请你按 任意 顺序返回矩阵中的所有幸运数. 幸运数是指矩阵中满足同时下列两个条件的元素: 在同一行的所有元素中最小 在同一列的所有元 ...

  5. 找出数组中最长的连续数字序列(JavaScript实现)

    原始题目: 给定一个无序的整数序列, 找最长的连续数字序列. 例如: 给定[100, 4, 200, 1, 3, 2], 最长的连续数字序列是[1, 2, 3, 4]. 小菜给出的解法: 1 func ...

  6. LeetCode 5356. 矩阵中的幸运数

    5356. 矩阵中的幸运数 给你一个 m * n 的矩阵,矩阵中的数字 各不相同 .请你按 任意 顺序返回矩阵中的所有幸运数. 幸运数是指矩阵中满足同时下列两个条件的元素: 在同一行的所有元素中最小 ...

  7. 【LeetCode】词典中最长的单词(附集合操作、lamda用法)

    题目描述 给出一个字符串数组 words 组成的一本英语词典.返回 words 中最长的一个单词,该单词是由 words 词典中其他单词逐步添加一个字母组成. 若其中有多个可行的答案,则返回答案中字典 ...

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

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

  9. java图遍历求最长路径_如何在Java中使用递归实现矩阵中最长路径的返回

    我正试图用递归来解决这个问题. 问题是:对于二维正整数数组,我如何返回最长路径(步骤),以便最长路径的每个单元格中的值是从整数的降序序列开始的,并且每个单元格和单元格之间的差异是一个给定的数字(num ...

最新文章

  1. android studio导入aar包,AndroidStudio导入本地aar文件
  2. 论文被拒,项目被砍?斯坦福「最惨」在读博士教你如何直面失败
  3. JavaScript全局函数
  4. Reverse Linked List II
  5. leetcode 932. Beautiful Array | 932. 漂亮数组(分治法)
  6. oracle中的mount是什么意思,oraclenomountmountopen直接的关系
  7. mysql技术内幕《读书笔记》
  8. PSD分层立体数据模板立体数据统计素材
  9. 表的顺序结构---重写Arraylist类
  10. Atitit 爬虫发展历史 在互联网发展初期,网站相对较少,信息查找比较容易。然而伴随互联网爆炸性的发展,普通网络用户想找到所需的资料简直如同大海捞针,这时为满足大众信息检索需求的专业搜索网站便应运
  11. 智慧运维:基于 BIM 技术的可视化管理系统
  12. PB:玉米气生根分泌物支持的高效生物固氮
  13. 瑞萨单片机c语言程序,瑞萨单片机学习笔记(1)基本配置
  14. 一个爆款小程序的复盘
  15. 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 B Coin (概率计算)
  16. 2. IMU原理及姿态融合算法详解
  17. poj 1950 Dessert 深搜
  18. 研发团队管理经验总结(一)
  19. UE4实现生化危机7影子谜题
  20. Android11不如,安卓11的卡顿是因为离开了华为的技术支持!

热门文章

  1. 在Mysql中显示所有用户的操作教程(Linux环境下)
  2. Halcon—Tuple中符号的含义
  3. java 字符串转成图片_java 转换图片为字符串,将字符串转换成图片显示
  4. mysql5.7物理备份_Mysql5.7—运维常用备份方式
  5. 嵌入式数据库sqlite在ARM上的的移植和使用
  6. shell 替换字符串的几种方法,变量替换${},sed,awk
  7. c#利用定时器自动备份数据库(mysql)
  8. html字体加大标签与写法介绍
  9. SpringBoot开发案例之整合Spring-data-jpa
  10. Readonly 与Const