首页 > 其他分享 >最大正方形

最大正方形

时间:2022-08-28 12:45:16浏览次数:49  
标签:最大 range len 正方形 length dp matrix

问题:在一个由 '0' 和 '1' 组成的二维矩阵内,找到只包含 '1' 的最大正方形,并返回其面积。

 

 

 输入:matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]]

输出:4

解法:动态规划

注意事项:dp的递推公式及边界条件

class Solution:
    def maximalSquare(self, matrix: List[List[str]]) -> int:
        if not matrix or len(matrix) < 1:
            return
        m, n = len(matrix), len(matrix[0])
        length = 0
        dp = [[0] * n for _ in range(m)]      # dp[i][j]表示以(i,j)为右下角正方形的边长
        for i in range(m):
            for j in range(n):
                if matrix[i][j] == "1":
                    if i==0 or j==0:
                        dp[i][j] = 1
                    else:
                        dp[i][j] = min(dp[i-1][j], dp[i-1][j-1], dp[i][j-1]) + 1     # 通过最小边长确定不满足条件
                    length = max(dp[i][j], length)
        return length*length

 

标签:最大,range,len,正方形,length,dp,matrix
From: https://www.cnblogs.com/demo-deng/p/16632560.html

相关文章

  • c++ delegate 类,最大16个参数,用程序生成的代码
    2017-02-1604:58:34 发布于 CSDN 现转博客园。 读这篇文章的前提是,我们使用的编辑器对c++11的支持不太友好。下面是测试代码:#include<stdio.h>#include<stdlib......
  • 【重要】LeetCode 662. 二叉树最大宽度
    题目链接注意事项根据满二叉树的节点编号规则:若根节点编号为u,则其左子节点编号为u<<1,其右节点编号为u<<1|1。一个朴素的想法是:我们在DFS过程中使用两个哈希表......
  • 662. 二叉树最大宽度
    662.二叉树最大宽度给你一棵二叉树的根节点root,返回树的最大宽度。树的最大宽度是所有层中最大的宽度。每一层的宽度被定义为该层最左和最右的非空节点......
  • 一台服务器最大并发 tcp 连接数多少?65535?
    转载:https://www.jianshu.com/p/0154dff4be77首先,问题中描述的65535个连接指的是客户端连接数的限制。在tcp应用中,server事先在某个固定端口监听,client主动发起连接,经......
  • 数组中两元素的最大乘积
    数组中最大两元素乘积一、题目描述给定一个数组nums,使用i或J表示数组中最大值元素和次大值元素,返回(nums[i]-1)*(nums[j]-1),即可;实例输入:nums=[2,1,3,5]输出:8输......
  • 2022-8-26 每日一题-最大的两个数-
    1464.数组中两元素的最大乘积难度简单53收藏分享切换为英文接收动态反馈给你一个整数数组 nums,请你选择数组的两个不同下标 i 和 j,使 (nums[i]-1)*(nums[j]-1......
  • 最大连续出牌数量
    '''1434565rybbrbb'''deffunc(cards):n=len(cards)matrix=[[0for_inrange(n)]for_inrange(n)]foriinrange(n):......
  • leetcode-数组中两元素的最大乘积
    题目描述给你一个整数数组nums,请你选择数组的两个不同下标i和j,使(nums[i]-1)*(nums[j]-1)取得最大值。请你计算并返回该式的最大值。示例1:输入:nums=[3,4,5,2]......
  • 一个字符串回文子串数量最大的排列 证明
    CF1063A一个字符串回文子串数量最大的排列证明Problem-1063A-Codeforces若将一个字符串任意排列,要使其中的回文子串数量最多,按字典序排序是一种方法。首先,在一个......
  • 礼物的最大价值
    问题:在一个m*n的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的......