news 2026/6/9 21:29:22

leetcode 3047. 求交集区域内的最大正方形面积 中等

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
leetcode 3047. 求交集区域内的最大正方形面积 中等

在二维平面上存在n个矩形。给你两个下标从0开始的二维整数数组bottomLefttopRight,两个数组的大小都是n x 2,其中bottomLeft[i]topRight[i]分别代表第i个矩形的左下角右上角坐标。

我们定义向右的方向为 x 轴正半轴(x 坐标增加),向左的方向为 x 轴负半轴(x 坐标减少)。同样地,定义向上的方向为 y 轴正半轴(y 坐标增加,向下的方向为 y 轴负半轴(y 坐标减少)。

你可以选择一个区域,该区域由两个矩形的交集形成。你需要找出能够放入该区域最大正方形面积,并选择最优解。

返回能够放入交集区域的正方形的最大可能面积,如果矩形之间不存在任何交集区域,则返回0

示例 1:

输入:bottomLeft = [[1,1],[2,2],[3,1]], topRight = [[3,3],[4,4],[6,6]]输出:1解释:边长为 1 的正方形可以放入矩形 0 和矩形 1 的交集区域,或矩形 1 和矩形 2 的交集区域。因此最大面积是边长 * 边长,即 1 * 1 = 1。 可以证明,边长更大的正方形无法放入任何交集区域。

示例 2:

输入:bottomLeft = [[1,1],[2,2],[1,2]], topRight = [[3,3],[4,4],[3,4]]输出:1解释:边长为 1 的正方形可以放入矩形 0 和矩形 1,矩形 1 和矩形 2,或所有三个矩形的交集区域。因此最大面积是边长 * 边长,即 1 * 1 = 1。 可以证明,边长更大的正方形无法放入任何交集区域。 请注意,区域可以由多于两个矩形的交集构成。

示例 3:

输入:bottomLeft = [[1,1],[3,3],[3,1]], topRight = [[2,2],[4,4],[4,2]]输出:0解释:不存在相交的矩形,因此,返回 0 。

提示:

  • n == bottomLeft.length == topRight.length
  • 2 <= n <= 10^3
  • bottomLeft[i].length == topRight[i].length == 2
  • 1 <= bottomLeft[i][0], bottomLeft[i][1] <= 10^7
  • 1 <= topRight[i][0], topRight[i][1] <= 10^7
  • bottomLeft[i][0] < topRight[i][0]
  • bottomLeft[i][1] < topRight[i][1]

分析:检查任意两个矩形是否相交,如果相交,取横向、纵向相交部分的较小值作为正方形的边,最后返回边长相乘的值。

判断两个区间是否有重合部分,可以先分别计算两个区间的长度,如果区间长度之和大于右端点的最大值减去左端点的最小值的差大于 0,说明重合。

long long largestSquareArea(int** bottomLeft, int bottomLeftSize, int* bottomLeftColSize, int** topRight, int topRightSize, int* topRightColSize) { int n=bottomLeftSize,ans=0; for(int i=0;i<n;++i) { int len_xi=topRight[i][0]-bottomLeft[i][0],len_yi=topRight[i][1]-bottomLeft[i][1]; for(int j=i+1;j<n;++j) { int len_xj=topRight[j][0]-bottomLeft[j][0],len_yj=topRight[j][1]-bottomLeft[j][1]; int l1=len_xi+len_xj-(fmax(topRight[i][0],topRight[j][0])-fmin(bottomLeft[i][0],bottomLeft[j][0])); int l2=len_yi+len_yj-(fmax(topRight[i][1],topRight[j][1])-fmin(bottomLeft[i][1],bottomLeft[j][1])); ans=fmax(ans,fmin(l1,l2)); } } return 1LL*ans*ans; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 12:26:45

Mandiant 发布彩虹表工具集,可破解 NTLMv1 管理员密码

谷歌旗下 Mandiant 公司近日公开了一套完整的 Net-NTLMv1 彩虹表数据集&#xff0c;这一举措显著放大了传统认证协议的安全风险警示。过时协议的安全危机此次发布传递了一个紧迫信号&#xff1a;企业必须立即弃用 Net-NTLMv1 协议。该协议自 1999 年起就被证实存在加密缺陷&…

作者头像 李华
网站建设 2026/6/10 3:10:01

(新界面)NVR运动检测配置指导

(新界面)宇视 NVR运动检测功能配置指导一、功能介绍检测一段时间内某个区域是否存在物体运动&#xff0c;检测到运动物体时&#xff0c;上报运动检测报警。检测报警可在通道报警&#xff0c;日志查询中查看。旧版本NVR需升级至NVR-BXXXX.50.13.250529或更高版本&#xff0c;方可…

作者头像 李华
网站建设 2026/6/10 13:11:16

2026 年寒假写论文 AI 选型指南

2026 年寒假写论文 AI 选型指南7 类工具&#xff0c;按“写作阶段”选&#xff0c;不再瞎试寒假是论文推进的关键窗口期&#xff0c;但很多人效率低下&#xff0c;并不是不努力&#xff0c;而是工具选型从一开始就错位。到 2026 年&#xff0c;写论文用 AI 已经不是“能不能写”…

作者头像 李华
网站建设 2026/6/10 13:10:19

全网最全2026本科生AI论文工具TOP9测评

全网最全2026本科生AI论文工具TOP9测评 2026年本科生AI论文工具测评&#xff1a;为何需要一份权威榜单&#xff1f; 随着人工智能技术的不断进步&#xff0c;越来越多的本科生开始借助AI工具提升论文写作效率。然而&#xff0c;面对市场上琳琅满目的AI论文辅助软件&#xff0c;…

作者头像 李华
网站建设 2026/6/10 1:47:25

全面讲解常见虚拟串口工具的初始化配置

虚拟串口实战指南&#xff1a;从配置到应用&#xff0c;打通嵌入式通信的“任督二脉”你有没有遇到过这样的场景&#xff1f;手头一个嵌入式设备等着调试&#xff0c;上位机软件只认COM3&#xff0c;可你的笔记本连个DB9接口都没有&#xff1b;或者两个本地程序非要通过串口通信…

作者头像 李华
网站建设 2026/6/10 13:11:37

Obsidian中Template的使用

前言 Obsidian 有两个主要的模板相关插件&#xff1a;官方核心插件 Templates和社区增强插件 Templater。Templater 是官方 Templates 的功能扩展版&#xff0c;可完全替代官方插件&#xff0c;提供更强大的动态模板能力。 建议使用社区版本&#xff0c;功能更多。 功能&#x…

作者头像 李华