LeetCode 302. 包含全部黑色像素的最小矩形(BFS)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

图片在计算机处理中往往是使用二维矩阵来表示的。

假设,这里我们用的是一张黑白的图片,那么 0 代表白色像素,1 代表黑色像素。

其中黑色的像素他们相互连接,也就是说,图片中只会有一片连在一块儿的黑色像素(像素点是水平或竖直方向连接的)。

那么,给出某一个黑色像素点 (x, y) 的位置,你是否可以找出包含全部黑色像素的最小矩形(与坐标轴对齐)的面积呢?
在这里插入图片描述

示例:
输入:
["0010","0110","0100"
]
和 x = 0, y = 2输出: 6

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

2. 解题

  • 简单的模板题,BFS、DFS都可以做
  • 找两个方向坐标的极限值
class Solution {int x1 = INT_MAX, x2 = -1;int y1 = INT_MAX, y2 = -1;
public:int minArea(vector<vector<char>>& image, int x, int y) {int m = image.size(), n = image[0].size(), i, j, nx, ny, k;vector<vector<int>> dir = {{1,0},{0,1},{0,-1},{-1,0}};queue<vector<int>> q;q.push({x,y});image[x][y] = '0';//访问过了while(!q.empty()){i = q.front()[0];j = q.front()[1];q.pop();x1 = min(x1, i);x2 = max(x2, i);y1 = min(y1, j);y2 = max(y2, j);for(k = 0; k < 4; ++k){nx = i + dir[k][0];ny = j + dir[k][1];if(nx>=0 && nx<m && ny>=0 && ny<n && image[nx][ny]=='1'){q.push({nx, ny});image[nx][ny] = '0';//访问过了}}}return (x2-x1+1)*(y2-y1+1);}
};

84 ms 14 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

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

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

相关文章

蓝色三角_叶子长得像韭菜,花朵开得像个糖三角的鸢尾,用这3个方法拍摄它...

女孩子们小时候都跳皮筋。有一段口诀&#xff0c;里面有一句“马兰开花二十一”……我虽然皮筋没少跳&#xff0c;但是对于马兰花&#xff0c;却也是只闻其名&#xff0c;未见其身。后来&#xff0c;我在户外拍风光、拍花卉。在草丛里看到三片细长花瓣组成的的蓝色小花&#xf…

javascript获取浏览器客户端IP

<script language"JavaScript"> function GetLocalIPAddr(){ var oSetting null; var ip null; try{ oSetting new ActiveXObject( "rcbdyctl.Setting" ); ip oSetting.GetIPAddress; alert(ip); if (ip.length 0){ return "没有连接到Int…

Excel常用函数总结

常用函数 数学和三角函数 计算公式 SIGN–返回数字符号 当数字大于0时返回1&#xff0c;等于0返回0&#xff0c;小于0返回-1 ABS–计算数字的绝对值 SUM–计算数字之和 PRODUCT–计算数字之积 MOD–返回商的余数 QUOTIENT–返回商的整数部分 SUMIF–按给定条件对指定单元格求…

LeetCode 1063. 有效子数组的数目(单调栈)

文章目录1. 题目2. 解题1. 题目 给定一个整数数组 A&#xff0c;返回满足下面条件的 非空、连续 子数组的数目&#xff1a; 子数组中&#xff0c;最左侧的元素不大于其他元素。 示例 1&#xff1a; 输入&#xff1a;[1,4,2,5,3] 输出&#xff1a;11 解释&#xff1a;有 11 个…

springboot 多了8小时_日本人不明白:中国的奶茶有多好喝,值得排队8小时去买?...

日本人不明白&#xff1a;中国的奶茶有多好喝&#xff0c;值得排队8小时去买&#xff1f;最近有许多的网红奶茶店兴起&#xff0c;尤其是在冬季&#xff0c;加料十足的热奶茶就成为了年轻人的心头之好&#xff0c;就拿最近在武汉新开的首家茶颜悦色来说&#xff0c;每天的队伍都…

vc调用matlab生成的dll实例

http://blog.csdn.net/ithzhang/article/details/7444563转载于:https://www.cnblogs.com/burellow/archive/2012/11/27/2790271.html

将整个表单设置为只读_如何将独立网站设置为制作中,阻止搜索引擎收录网站页面?...

独立网站设置为制作中当网站未完成状态时&#xff0c;可能不希望除管理员以外的人看到未完成的页面时&#xff0c;如何操作可以将独立网站设置为制作中&#xff0c;并阻止搜索引擎收录网站页面呢&#xff1f;可按照以下步骤进行操作&#xff1b;将网站设置为制作中网站制作中设…

指标波动多大才算是异常?

指标波动不可怕&#xff0c;指标波动代表的业务场景才可怕&#xff01;脱离业务场景谈指标波动就是耍流氓。 指标波动分类 第一类&#xff1a;硬指标波动。 有一些指标是刚性考核业务部门的。比如 考核销售&#xff1a;业绩、回款 考核商品&#xff1a;库存、毛利 考核客服&…

.net 门槛高不高之我见

最近有两大.net高手在争论&#xff0c;一个说门槛高&#xff0c;一个说门槛低。 其实这两个都是高手&#xff0c;为何会有截然不同的看法&#xff1f;其实我感觉这应该是一个“语言”理解的问题&#xff0c;而不是对“事实”理解的差异。比如我觉得一个东西很好&#xff0c;但是…

LeetCode 361. 轰炸敌人(前缀和DP)

文章目录1. 题目2. 解题1. 题目 想象一下炸弹人游戏&#xff0c;在你面前有一个二维的网格来表示地图&#xff0c;网格中的格子分别被以下三种符号占据&#xff1a; W 表示一堵墙 E 表示一个敌人 0&#xff08;数字 0&#xff09;表示一个空位请你计算一个炸弹最多能炸多少敌…

led拼接屏报价_液晶拼接屏与led显示屏的区别在哪?

在目前的大屏显示产品中&#xff0c;液晶拼接屏和led显示屏是两种比较普遍的产品&#xff0c;拼接大屏是通过单个液晶拼接单元拼接而成的显示大屏&#xff0c;而led显示屏则是通过发光二极管组成密集点阵组成图像显示&#xff0c;我们通常听到的P1、P2代表的是像素点距离&#…

Powerbi实战--常用新建表代码(单位切换,日期表)

单位切换 #Model_Unit DATATABLE("单位名称",STRING,"OrderBy_unit",INTEGER,"Value",INTEGER, {{ "无", 1, 1 },{ "万", 2, 10000 },{ "百万", 3, 1000000 },{ "亿", 4, 100000000 }})日期相关表…

Windows Phone 8安装包中的文件和独立存储区中的文件访问

安装包中的文件&#xff1a; Windows Phone 8访问安装包中的文件可以直接采用相对路径的形式&#xff0c;"apps/readme.txt"。例如&#xff1a;FileStream stream File.OpenRead("apps/readme.txt"); 也可以采用下面的方式&#xff1a; string installPat…

LeetCode 356. 直线镜像

文章目录1. 题目2. 解题1. 题目 在一个二维平面空间中&#xff0c;给你 n 个点的坐标。 问&#xff0c;是否能找出一条平行于 y 轴的直线&#xff0c;让这些点关于这条直线成镜像排布&#xff1f; 示例 1&#xff1a; 输入: [[1,1],[-1,1]] 输出: true示例 2&#xff1a; 输入…

使用DispatcherTimer计时器

《银光志--Silverlight 3.0开发详解与最佳实践》第3章XAML与Silverlight编程内功&#xff0c;通过本章的学习&#xff0c;相信你会对Silverlight编程模型、XAML、事件处理&#xff0c;以及LINQ查询语言有了一个比较全面的了解&#xff0c;在本章的示例中应用的都是一些基本的XA…

静物摄影用光技巧_室内人像摄影想要拍好,这3种用光技巧你了解吗?

选择靠近窗户的位置在室内可以首先考虑在靠近窗户的位置进行拍摄&#xff0c;因为窗户边上尤其是朝北的窗户会有非常柔和的散射光&#xff0c;当投射进窗户的是直射光线时&#xff0c;摄影者还可以拉上一层很薄的窗帘来缓解一下光线的强度&#xff0c;在靠近窗户的位置&#xf…

SQL基础知识:DDL、DML、DQL

DDL&#xff1a;数据定义语言 对数据库和数据表的管理 数据库 1、创建 create database [if not exists] databasename;2、列举 show databases;3、查看当前所在数据库 select database();4、切换 use databasename;5、删除 drop database [if exists] databasename;数…

LeetCode 660. 移除 9(9进制)

文章目录1. 题目2. 解题1. 题目 从 1 开始&#xff0c;移除所有包含数字 9 的所有整数&#xff0c;例如 9&#xff0c;19&#xff0c;29&#xff0c;…… 这样就获得了一个新的整数数列&#xff1a;1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5&#xff0c;6&…

DllImport的用法

DllImport是System.Runtime.InteropServices命名空间下的一个属性类&#xff0c;其功能是提供从非托管DLL导出的函数的必要调用信息。 DllImport属性应用于方法&#xff0c;要求最少要提供包含入口点的dll的名称。 DllImport的定义如下&#xff1a; [AttributeUsage(Attr…

postman怎么导出测试用例_利用Charles抓包巧转接口自动化测试用例

在前面的文章中&#xff0c;也有介绍类似的工具的。例如&#xff1a;一键将接口请求转为测试用例介绍了开源的mitmproxy录制转化为接口测试用例&#xff0c;postman接口用例转化为python自动化测试用例 文章记录了如何把postman的测试用例转化为python的接口自动化的测试用例&a…