zoukankan      html  css  js  c++  java
  • Leetcode练习(Python):动态规划类:第221题:最大正方形:在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。

    题目:

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

    思路:

    思路来源于官方,自己的思路把题做的太难了,也做不对,直接借助一个矩阵来存放最大的面积,设计程序需要一定的小技巧。

    程序:

    class Solution:
        def maximalSquare(self, matrix: List[List[str]]) -> int:
            if not matrix:
                return 0
            rows = len(matrix)
            columns = len(matrix[0])
            if rows == 0 or columns == 0:
                return 0
            max_side = 0
            auxiliary = [[0] * columns for _ in range(rows)]
            for index1 in range(rows):
                for index2 in range(columns):
                    if matrix[index1][index2] == '1':
                        if index1 == 0 or index2 == 0:
                            auxiliary[index1][index2] = 1
                        else:
                            auxiliary[index1][index2] = min(auxiliary[index1 - 1][index2 - 1], auxiliary[index1][index2 - 1], auxiliary[index1 - 1][index2]) + 1
                        max_side = max(max_side, auxiliary[index1][index2])
            result = max_side ** 2
            return result
    

      

  • 相关阅读:
    js获取数组最大值或最小值
    echarts 在 vue-awesome-swiper中无法点击
    vue 父子父组件通过props传父页面请求后的数据
    vue 路由对象
    popupwindow
    数据库
    冒泡排序
    xtuils
    版本更新
    清除缓存
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12885166.html
Copyright © 2011-2022 走看看