最大的以 1 为边界的正方形

简介: 最大的以 1 为边界的正方形

最大的以 1 为边界的正方形

给你一个由若干 0 和 1 组成的二维网格 grid,请你找出边界全部由 1 组成的最大 正方形 子网格,并返回该子网格中的元素数量。如果不存在,则返回 0。

示例 1:

输入:grid = [[1,1,1],[1,0,1],[1,1,1]]
输出:9

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/largest-1-bordered-square
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

一、预处理数组

left:每一行中的每一列从左到右连续为1的最长长度
top:每一列中的每一行从下到上连续为1的最长长度

        int n=grid.length;
        int m=grid[0].length;
        int[][] right=new int[n][m];
        int[][] top=new int[n][m];
        for(int i=n-1;i>=0;i--){
            for(int j=m-1;j>=0;j--){
                if(j==m-1&&grid[i][j]==1){
                    right[i][j]=1;
                }else if(j!=m-1&&grid[i][j]==1){
                    right[i][j]=right[i][j+1]+1;
                }else{
                    right[i][j]=0;
                }
            }
        }
        
        for(int i=m-1;i>=0;i--){
            for(int j=n-1;j>=0;j--){
                if(j==n-1&&grid[j][i]==1){
                    top[j][i]=1;
                }else if(j!=n-1&&grid[j][i]==1){
                    top[j][i]=top[j+1][i]+1;
                }
            }
        }

二、解题步骤

有了预处理数组后,我们就可以轻松解题了
我们知道任何一个(i,j)位置右边有多少个连续的1,下方有多少个连续的1(包括自己在内)
同时,我们也可以知道(i+size,j)右边位置有多少个连续的1
和(i,j+size)下方位置有多少个连续的1;
如果这4条边连续的1的数量相等,则为一个正方形
我们从最大边开始找

代码

class Solution {
    public int largest1BorderedSquare(int[][] grid) {
        int n=grid.length;
        int m=grid[0].length;
        int[][] right=new int[n][m];
        int[][] top=new int[n][m];
        for(int i=n-1;i>=0;i--){
            for(int j=m-1;j>=0;j--){
                if(j==m-1&&grid[i][j]==1){
                    right[i][j]=1;
                }else if(j!=m-1&&grid[i][j]==1){
                    right[i][j]=right[i][j+1]+1;
                }else{
                    right[i][j]=0;
                }
            }
        }
        
        for(int i=m-1;i>=0;i--){
            for(int j=n-1;j>=0;j--){
                if(j==n-1&&grid[j][i]==1){
                    top[j][i]=1;
                }else if(j!=n-1&&grid[j][i]==1){
                    top[j][i]=top[j+1][i]+1;
                }
            }
        }
        
        for(int size=Math.min(n,m);size!=0;size--){
            if(isSquare(size,right,top)){
                return size*size;
            }
        }
        return 0;
    }
    public boolean isSquare(int size,int[][] right,int[][] top){
        for(int i=0;i!=right.length-size+1;i++){
            for(int j=0;j!=top[0].length-size+1;j++){
                if(right[i][j]>=size&&top[i][j]>=size&&right[i+size-1][j]>=size&&top[i][j+size-1]>=size){
                    return true;
                }
            }
        }
        return false;
    }
}
相关文章
|
架构师 前端开发 中间件
从工程师到技术leader的思维升级
从技术新人到一个成熟的技术leader,需要经历几个身份迭代?每一次身份的转换都需要怎样的思维升级?本文将从技术新人、潜力干将、架构师、技术leader四种身份的思维升级依次展开。
|
存储 算法 程序员
【期末计算机组成原理速成】第三章:存储器
【期末计算机组成原理速成】第三章:存储器
495 0
|
10月前
|
供应链 安全 Cloud Native
阿里云容器服务助力企业构建云原生软件供应链安全
本文基于2024云栖大会演讲,探讨了软件供应链攻击的快速增长趋势及对企业安全的挑战。文中介绍了如何利用阿里云容器服务ACK、ACR和ASM构建云原生软件供应链安全,涵盖容器镜像的可信生产、管理和分发,以及服务网格ASM实现应用无感的零信任安全,确保企业在软件开发和部署过程中的安全性。
|
12月前
|
数据可视化
如何选择适合自己建站的CMS系统?
CMS(内容管理系统)平台让您无需理解任何代码(至少对大多数代码而言)即可轻松创建网站。有许多可用的 CMS 选项,这意味着您可能很难选择最适合您需求的 CMS。
124 0
|
自然语言处理 PyTorch TensorFlow
Transformers 4.37 中文文档(二十二)(1)
Transformers 4.37 中文文档(二十二)
100 1
|
安全 Oracle Java
weblogic中间件漏洞总结(二)
weblogic中间件漏洞总结
408 82
weblogic中间件漏洞总结(二)
|
索引 Windows
技术笔记:RTF文件格式
技术笔记:RTF文件格式
694 0
Can not set final java.lang.Class field org.apache.ibatis.binding.MapperProxy.mapperInterface to com
Can not set final java.lang.Class field org.apache.ibatis.binding.MapperProxy.mapperInterface to com
280 0
|
存储 弹性计算 固态存储
阿里云服务器是如何收费的?阿里云服务器各收费项目收费标准参考
阿里云服务器收费标准包括实例价格、预留实例券价格、专有宿主机、块存储价格、存储容量单位包、带宽价格、快照服务价格等,云服务器价格主要由云服务器配置费用+磁盘价格+网络宽带价格,配置指的是云服务器的实例规格和cpu与内存配置,本文为大家分享一下2023年阿里云服务器所有收费项目的最新收费标准,以表格形式展示给大家,以供参考。
阿里云服务器是如何收费的?阿里云服务器各收费项目收费标准参考
|
存储 机器学习/深度学习 弹性计算
阿里云gpu云服务器多少钱,gpu云服务器最新收费标准及价格参考
阿里云gpu云服务器多少钱?2023年购买阿里云gpu云服务器最低仅需1500.00元/月起,购买轻量型GPU云服务器最低628.56元/月起。阿里云GPU云服务器是基于GPU应用的计算服务,多适用于视频解码,图形渲染,深度学习,科学计算等应用场景,该产品具有超强计算能力、网络性能出色、购买方式灵活、高性能实例存储( GA1和GN5特有)等特点。下面小编来介绍下阿里云gpu云服务器最新的收费标准及活动价格。
阿里云gpu云服务器多少钱,gpu云服务器最新收费标准及价格参考