news 2026/10/13 8:05:20

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

作者头像

张小明

前端开发工程师

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

在二维平面上存在n个矩形。给你两个下标从0开始的二维整数数组bottomLeft和topRight,两个数组的大小都是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/10/9 8:18:28

leetcode 1895. 最大的幻方 中等

一个 k x k 的 幻方 指的是一个 k x k 填满整数的方格阵&#xff0c;且每一行、每一列以及两条对角线的和 全部相等 。幻方中的整数 不需要互不相同 。显然&#xff0c;每个 1 x 1 的方格都是一个幻方。给你一个 m x n 的整数矩阵 grid &#xff0c;请你返回矩阵中 最大幻方 的…

作者头像 李华
网站建设 2026/10/7 11:58:19

如何选择EOR名义雇主服务?2026年精选名义雇主服务推荐榜单,让企业用工更高效

EOR名义雇主服务为企业提供了一种有效、合规的用工解决方案&#xff0c;可以帮助企业轻松进入国际市场。通过使用EOR服务&#xff0c;企业可以避免因不熟悉当地法律而带来的风险。这类服务商会处理员工的合同管理、薪资发放和合规事务&#xff0c;使得企业能专注于发展核心业务…

作者头像 李华
网站建设 2026/10/10 18:42:45

注意!这几家正规丙烯酸厂家,你必读!

《丙烯酸哪家好&#xff1a;排名前五专业深度测评》开篇&#xff1a;定下基调在化工领域&#xff0c;丙烯酸作为一种重要的有机合成原料&#xff0c;广泛应用于涂料、胶粘剂、化纤等众多行业。其质量的优劣直接影响到下游产品的性能和品质。因此&#xff0c;为了帮助对丙烯酸感…

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

孩子近视了,接下来该做什么?

当孩子的视力检测单上出现“视力不良”的时候&#xff0c;不少家长都会陷入焦虑与迷茫&#xff1a;要不要立刻配眼镜&#xff1f;日常该怎么护理&#xff1f;如何阻止近视度数加深&#xff1f;事实上&#xff0c;孩子近视后的干预是一项系统性工作&#xff0c;既需要科学的检查…

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

亲测好用9个AI论文平台,本科生毕业论文轻松搞定!

亲测好用9个AI论文平台&#xff0c;本科生毕业论文轻松搞定&#xff01; AI 工具如何助力论文写作&#xff0c;让毕业之路更轻松 随着人工智能技术的不断进步&#xff0c;越来越多的 AI 工具被应用于学术写作领域。对于本科生来说&#xff0c;撰写毕业论文是一项既重要又充满挑…

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

基于ssm+vue的库克血站信息管理系统[ssm]-计算机毕业设计源码+LW文档

摘要&#xff1a;血站信息管理对于保障血液供应的安全与高效至关重要。本文设计并实现了基于SSM&#xff08;SpringSpringMVCMyBatis&#xff09;后端框架与Vue前端框架的库克血站信息管理系统。系统涵盖系统用户管理、通知公告管理、医生&#xff08;工作人员&#xff09;管理…

作者头像 李华