• 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
    

      

  • 相关阅读:
    多线程中thread和runnable
    安装hive 个人遇到的问题小问题
    Linux 简单命令学习记录
    shell脚本简单学习教训经验
    @AutoWired使用
    <jsp:directive.page>标签
    Hibernate session.saveOrUpdate()方法
    无法连接远程mysql问题
    svn版本控制
    Hql中占位符(转)
  • 原文地址:https://www.cnblogs.com/SuckChen/p/12922706.html
Copyright © 2020-2023  润新知