给你一个只包含 0 和 1 的 rows * columns 矩阵 mat ,请你返回有多少个 子矩形 的元素全部都是 1 。

示例 1:
输入:mat =
[[1,0,1],
[1,1,0],
[1,1,0]]
输出:13
解释:
有 6 个 1x1 的矩形。
有 2 个 1x2 的矩形。
有 3 个 2x1 的矩形。
有 1 个 2x2 的矩形。
有 1 个 3x1 的矩形。
矩形数目总共 = 6 + 2 + 3 + 1 + 1 = 13 。

解题思路

数组含义:dp[i][j]位于(i,j)的元素向左延长的长度
状态转移:min= Math.min(dp[k][j],min) 向上遍历,加入满足最小长度的矩形

代码

class Solution {public int numSubmat(int[][] mat) {int n=mat.length,m=mat[0].length,res=0;int[][]dp=new int[n][m+1];for(int i=0;i<n;i++)for(int j=1;j<=m;j++)dp[i][j]=mat[i][j-1]==1?dp[i][j-1]+1:0;for(int i=0;i<n;i++)for(int j=1;j<=m;j++){int min=Integer.MAX_VALUE;for (int k=i;k>=0;k--)if(dp[k][j]==0) break;else{min= Math.min(dp[k][j],min);res+=min;}}return res;}
}

leetcode1504. 统计全 1 子矩形(动态规划)相关推荐

  1. jq遍历子元素_leetcode第196周赛第三题统计全 1 子矩形

    leetcode1504. 统计全 1 子矩形 给你一个只包含 0 和 1 的 rows * columns 矩阵 mat ,请你返回有多少个 子矩形 的元素全部都是 1 . 示例 1: 输入:mat ...

  2. 5454. 统计全 1 子矩形(Leetcode 196周赛)

    5454. 统计全 1 子矩形 给你一个只包含 0 和 1 的 rows * columns 矩阵 mat ,请你返回有多少个 子矩形 的元素全部都是 1 . 示例 1: 输入:mat = [[1,0 ...

  3. LeetCode 1504. 统计全 1 子矩形(记录左侧的连续1的个数)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个只包含 0 和 1 的 rows * columns 矩阵 mat , 请你返回有多少个 子矩形 的元素全部都是 1 . 示例 1: 输入:mat ...

  4. 力扣比赛 5454. 统计全 1 子矩形

    给你一个只包含 0 和 1 的 rows * columns 矩阵 mat ,请你返回有多少个 子矩形 的元素全部都是 1 . 示例 1: 输入:mat = [[1,0,1], [1,1,0], [1 ...

  5. 【LeetCode】5454. 统计全 1 子矩形

    给你一个只包含 0 和 1 的 rows * columns 矩阵 mat ,请你返回有多少个 子矩形 的元素全部都是 1 . 示例 1: 输入:mat = [[1,0,1], [1,1,0], [1 ...

  6. leetcode 1504. Count Submatrices With All Ones | 1504. 统计全 1 子矩形(单调栈)

    题目 https://leetcode.com/problems/count-submatrices-with-all-ones/ 题解 本题与 leetcode 84. Largest Rectan ...

  7. LeetCode 1277. 统计全为 1 的正方形子矩阵(DP)

    1. 题目 给你一个 m * n 的矩阵,矩阵中的元素不是 0 就是 1,请你统计并返回其中完全由 1 组成的 正方形 子矩阵的个数. 示例 1: 输入:matrix = [[0,1,1,1],[1, ...

  8. C语言求最大正方形子矩阵,动态规划—统计全为1的正方形子矩阵个数|最大正方形...

    最大正方形 (统计全为 1 的正方形子矩阵) 解析可以参考leetcode解析 public class Solution { public int countSquares(int[][] matr ...

  9. 力扣--统计全1子矩阵

    力扣–统计全1子矩阵 文章目录 力扣--统计全1子矩阵 一.题目描述 二.分析 方法一:枚举 三.代码 枚举方法的代码 一.题目描述 二.分析 方法一:枚举 首先很直观的想法,我们可以枚举矩阵中的每个 ...

最新文章

  1. mysql的安装和启动_mysql安装和启动
  2. 51单片机多任务操作系统的原理与实现
  3. 客座编辑:季统凯(1972-),男,博士,中国科学院云计算产业技术创新与育成中心研究员、主任。...
  4. windows c语言目录操作函数,c语言目录操作在C/C++语言中如何进行目录操作,如得到目录内的 爱问知识人...
  5. Nginx+Mongodb 文件存储方案
  6. CentOS 7 配置yum本地base源和阿里云epel源
  7. matlab 图像分块及恢复
  8. ghost还原固态硬盘_解决方法:SSD可以使用Ghost软件吗?最后说清楚了
  9. a3图纸标题栏尺寸标准,a3图纸(学生a3制图标题栏尺寸)
  10. fastlane 问题记录
  11. already opened by ClassLoader
  12. NVME NSSR (Nvme Sub System Reset)
  13. (十一) ELK快速入门
  14. tf.name_scope与tf.variable_scope用法区别
  15. 全文检索系统技术架构及流程说明
  16. 收藏功能前端实现代码
  17. FHQ大战Splay
  18. IEEE文章免费下载方法
  19. NPDP学员王杰备考心得:多看书,多记,多刷题
  20. 解决光驱盘符和虚拟光驱盘符消失的问题

热门文章

  1. 1038. 统计同成绩学生(20)
  2. 如何保证redis高可用?薪资翻倍
  3. 大牛带你直击优秀开源框架灵魂,给大家安排上!
  4. php用户之间的数据,什么是位于用户与操作系统之间的一层数据管理软件
  5. 在HTML中使用javascript (js高级程序设计)
  6. 枚举转中文,通过反射方法与描述的方式获取
  7. Mysql中natural join和inner join的区别
  8. java.sql.SQLException: ORA-01438: 值大于此列指定的允许精确度
  9. Anaconda安装第三方包(whl文件)
  10. Springboot(2.0.0.RELEASE)+spark(2.1.0)框架整合到jar包成功发布(原创)!!!