LeetCode 1139. 最大的以 1 为边界的正方形(DP)

1. 题目

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

示例 1:
输入:grid = [[1,1,1],[1,0,1],[1,1,1]]
输出:9示例 2:
输入:grid = [[1,1,0,0]]
输出:1提示:
1 <= grid.length <= 100
1 <= grid[0].length <= 100
grid[i][j]01

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

2. 解题

参看 :程序员面试金典 - 面试题 17.23. 最大黑方阵(DP)

  • 求得每个坐标位置处的 上方、左侧 连续的 1 有多少个
  • 从右下角开始遍历每个位置,每个点的初始边长edge取 min(上、左)
  • 检测另外两条边是不是也 >= edge,求取最大的边长
class Solution {
public:int largest1BorderedSquare(vector<vector<int>>& grid) {int m = grid.size(), n = grid[0].size(), i, j;vector<vector<int>> sumof1Up(m, vector<int>(n,0));//向上连续1的个数vector<vector<int>> sumof1Left(m, vector<int>(n,0));//向左连续1的个数for(i = 0; i < m; i++){for(j = 0; j < n; j++){if(grid[i][j] == 1){if(i==0 && j==0)sumof1Left[i][j] = 1, sumof1Up[i][j] = 1;else if(i==0 && j>0){sumof1Left[i][j] = sumof1Left[i][j-1]+1;sumof1Up[i][j] = 1;}else if(j==0 && i > 0){sumof1Left[i][j] = 1;sumof1Up[i][j] = sumof1Up[i-1][j]+1;}else{sumof1Left[i][j] = sumof1Left[i][j-1]+1;sumof1Up[i][j] = sumof1Up[i-1][j]+1;}}}}int maxEdge = 0, edge, x, y;for(i = m-1; i >= 0; i--){for(j = n-1; j >= 0; --j){edge = min(sumof1Up[i][j], sumof1Left[i][j]);//初始边长while(edge > 0){if(maxEdge > edge)//肯定小,不必检查了break;x = i-edge+1;//上方边的xy = j-edge+1;//左侧边的yif(sumof1Up[i][y]>=edge && sumof1Left[x][j]>=edge){	//左侧边  上侧边长都大于等 edgemaxEdge = edge;}edge--;//遍历所有可能}}}return maxEdge*maxEdge;}
};

44 ms 11.3 MB

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/476560.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大幅超越DALL·E 2和Imagen,斯坦福发布RA-CM3模型,融合检索与生成

文&#xff5c;QvQ最近&#xff0c;DALL-E和CM3等模型在多模态任务尤其是图文理解上表现出色。然而&#xff0c;这些模型似乎需要将所有学到的知识存储都存储在模型参数中&#xff0c;这就不得不需要越来越大的模型和训练数据来获取更多的知识&#xff0c;俨然将bigger and bet…

什么是域名服务器(DNS)

问题&#xff1a;什么是域名服务器&#xff1f;域名服务器是什么意思&#xff1f; 域名服务器即DNS&#xff0c;全称是Domain Name Server&#xff0c;一种程序&#xff0c;它保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的表&#xff0c;以解析消息的域名。…

python判断正负的函数_Python |在计算操作的函数内将负数转换为正数?

我一直在寻找将负数转换为正数&#xff0c;我发现了一些东西&#xff0c;但没有成功.. 这是一个来自在线Python页面的练习&#xff0c;我正在学习Python。 我希望你明白这一点。 这是去洛杉矶旅行&#xff0c;我用功能计算钱&#xff0c;但现在有一个问题&#xff0c;我“从洛杉…

LeetCode 1325. 删除给定值的叶子节点(递归)

1. 题目 给你一棵以 root 为根的二叉树和一个整数 target &#xff0c;请你删除所有值为 target 的 叶子节点 。 注意&#xff0c;一旦删除值为 target 的叶子节点&#xff0c;它的父节点就可能变成叶子节点&#xff1b; 如果新叶子节点的值恰好也是 target &#xff0c;那么…

[翻译] python Tutorial 之一

声明&#xff1a;本文做为IronPython-2.0 B3的Tutorial 中文译文&#xff0c;内容全部来自其英文原文&#xff0c;其中本人认为存在疑问的或翻译不当之处会用原文中的内容加以标记&#xff0c;且本文内容完全用于研 究和学习IronPython 之用&#xff0c;限于本人英文翻译功底有…

用python控制钉钉软件_Python—实现钉钉后台开发

二、实现钉钉免登流程 免登流程分四步&#xff1a;1、前端获取钉钉免登授权码code&#xff1b;2、后端获取access_token&#xff1b;3、使用授权码code和access_token换取用户userid&#xff1b;4、通过access_token和userid换取用户详情userinfo。 前端获取授权码code。// 获取…

LeetCode 1123. 最深叶节点的最近公共祖先(递归比较子树高度)

1. 题目 给你一个有根节点的二叉树&#xff0c;找到它最深的叶节点的最近公共祖先。 回想一下&#xff1a; 叶节点 是二叉树中没有子节点的节点树的根节点的 深度 为 0&#xff0c;如果某一节点的深度为 d&#xff0c;那它的子节点的深度就是 d1如果我们假定 A 是一组节点 S…

万字综述:目标检测模型YOLOv1-v7深度解析

文&#xff5c;Rocky Ding源&#xff5c;WeThinkln大家好&#xff0c;我是Rocky。近年来YOLO系列层出不穷&#xff0c;更新不断&#xff0c;已经到v7版本。Rocky认为不能简单用版本高低来评判一个系列的效果好坏&#xff0c;YOLOv1-v7不同版本各有特色&#xff0c;在不同场景&a…

python手枪_Python入门,爬虫训练——枪械查询

一、效果图&#xff1a;二、怎么做到的&#xff1f; 1&#xff0c;首先安装requests、bs4. 这两个第三方模块。 我们按住winR 在弹出来的窗口上输入cmd&#xff0c;来到命令窗口&#xff0c;输入pip install requests、pip install bs4即可&#xff0c;网速慢的可以切换至国内源…

LeetCode 865. 具有所有最深结点的最小子树(递归)

1. 题目 给定一个根为 root 的二叉树&#xff0c;每个结点的深度是它到根的最短距离。 如果一个结点在整个树的任意结点之间具有最大的深度&#xff0c;则该结点是最深的。 一个结点的子树是该结点加上它的所有后代的集合。 返回能满足“以该结点为根的子树中包含所有最深的…

为什么python是解释型面向对象的语言_python为什么是面向对象的

Python虽然是解释型语言&#xff0c;但从设计之初就已经是一门面向对象的语言&#xff0c;对于Python来说一切皆为对象。正因为如此&#xff0c;在Python中创建一个类和对象是很容易的&#xff0c;当然如果习惯面向过程或者函数的写法也是可以的&#xff0c;Python并不做硬性的…

AI写剧本炸场戏剧节!DeepMind出品,马斯克看了直夸,网友看到接口悟了

文&#xff5c;羿阁 萧箫 发自 凹非寺源&#xff5c;量子位OpenAI的ChatGPT大火后&#xff0c;DeepMind终于也坐不住了&#xff01;这次&#xff0c;他们推出一款名为“Dramatron”的新AI&#xff0c;用上它人人都可以变身编剧或作家。只需给出一句话大纲&#xff0c;Dramatron…

程序员面试金典 - 面试题 08.14. 布尔运算(区间动态规划)

1. 题目 给定一个布尔表达式和一个期望的布尔结果 result&#xff0c;布尔表达式由 0 (false)、1 (true)、& (AND)、 | (OR) 和 ^ (XOR) 符号组成。 实现一个函数&#xff0c;算出有几种可使该表达式得出 result 值的括号方法。 示例 1: 输入: s "1^0|0|1", r…

推荐优质的深度学习公众号

人工智能行业目前已接近饱和状态&#xff0c;如何从内卷中脱颖而出&#xff0c;除了极强的自律之外&#xff0c;系统性的学习方法也很重要。今天给大家推荐10个原创公众号&#xff0c;这些公众号定期会发些高质量原创&#xff0c;希望可以让你更高效的学习。小白学视觉哈工大博…

SQLServer安装挂起解决方法

出现“以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机”错误。无法进行下去。 具体步骤是&#xff1a; 1&#xff09;添加/删除程序中彻底删除sql server。 2&#xff09;将没有删除的sql server目录也删除掉。 …

程序员面试金典 - 面试题 17.06. 2出现的次数(找递推规律)

1. 题目 编写一个方法&#xff0c;计算从 0 到 n (含 n) 中数字 2 出现的次数。 示例: 输入: 25 输出: 9 解释: (2, 12, 20, 21, 22, 23, 24, 25)(注意 22 应该算作两次)提示&#xff1a; n < 10^9来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;…

python8个程序语言_所有程序员必知--2019年最流行的8种编程语言和框架

上图是您应该在2019年根据各种&#xff0c;统计和事实寻找的8种最佳编程语言和框架的列表。在技​​术不断进步的当代世界中&#xff0c;计算机无处不在。为计算机编写程序是当前IT市场上最关键的工作配置文件之一。 您是否想过还有比这更忙的任务&#xff1f;它正在选择合适的…

ChatGPT进入百度“弱智吧”后,疯了

文 | 兔子酱无论你玩不玩贴吧&#xff0c;“弱智吧”的大名很多人应该听说过。如今弱智吧的关注人数已经超过了200万。。。不得不说&#xff0c;能将这么多“弱智”聚在一起&#xff0c;“弱智吧”撑起了后百度贴吧时代的辉煌。。。来一起感受下“弱智吧”的日常&#xff1a;能…

打印网页时背景图片的问题

当我们打印一个网页时&#xff0c;默认情况下&#xff0c;网页的背景图片是不会被打印出来的 这与我们的打印代码无关&#xff0c;需要设置IE便可&#xff0c;如下图&#xff1a; 转载于:https://www.cnblogs.com/blodfox777/archive/2008/08/05/1260860.html

程序员面试金典 - 面试题 08.02. 迷路的机器人(DFS/动态规划)

文章目录1. 题目2. 解题2.1 DFS2.2 动态规划1. 题目 设想有个机器人坐在一个网格的左上角&#xff0c;网格 r 行 c 列。 机器人只能向下或向右移动&#xff0c;但不能走到一些被禁止的网格&#xff08;有障碍物&#xff09;。 设计一种算法&#xff0c;寻找机器人从左上角移动…