zoukankan      html  css  js  c++  java
  • Leetcode1277 统计全为1的正方形子矩阵个数

    题目:  难度 中等

      给你一个 m * n 的矩阵,矩阵中的元素不是 0 就是 1,请你统计并返回其中完全由 1组成的 正方形 子矩阵的个数。

    示例:

      输入:matrix =[

        [0,1,1,1],
        [1,1,1,1],
        [0,1,1,1]
      ]
      输出:15
      解释:
      边长为 1 的正方形有 10 个。
      边长为 2 的正方形有 4 个。
      边长为 3 的正方形有 1 个。
      正方形的总数 = 10 + 4 + 1 = 15.

    思路

    (i,j)为右下角位置的正方形个数与 (i,j-1) (i-1, j)(i-1, j-1)有关,(i,j)的个数是这三个位置中的最小值(注意当(i,j)为1时才有)。直接原地操作

    lass Solution:
        def countSquares(self, matrix: List[List[int]]) -> int:
    
            n = len(matrix[0])
            m = len(matrix)
            #count =[[0]*n for i in range(m)]
            c=0
            for i in range(n):
                #count[0][i] = matrix[0][i]
                c+=matrix[0][i]
            for i in range(1,m):
               
                c+=matrix[i][0]
            for i in range(1,m):
                for j in range(1,n):
                    matrix[i][j] += matrix[i][j]*(min(matrix[i][j-1],min(matrix[i-1][j],matrix[i-1][j-1])))
                    c+=matrix[i][j]
                   # print(c)
    
        
            return c
    

      

  • 相关阅读:
    Html笔记(四)图像
    Html笔记(三)列表
    Html笔记(二)字体
    Html笔记(一)概述
    mysql基础~经典题目
    MGR架构~原理细节分析(8.0最新版)
    hiveserver2
    恋爱心理
    和谐之道
    智者遇事求心,庸者遇事求境
  • 原文地址:https://www.cnblogs.com/SuckChen/p/12922706.html
Copyright © 2011-2022 走看看