[LeetCode] 223.矩形面积
题目链接: https://leetcode-cn.com/problems/rectangle-area
难度:中等
通过率:41.3%
题目描述:
在 二维 平面上计算出两个 由直线构成的 矩形重叠后形成的总面积。
每个矩形由其左下顶点和右上顶点坐标表示,如图所示。

示例:
输入: -3, 0, 3, 4, 0, -1, 9, 2
输出: 45
说明: 假设矩形面积不会超出 **int **的范围。
思路:
这道题,把问题考虑清楚就不难了!
首先,我们调整两个矩形,让第一个矩形是靠最左边的;
其次,先考虑没有重叠的情况,有三种情况,如图所示:

rectangle1的下边都大于(等于)rectangle2的上边,即B >= Hrectangle1的右边都小于(等于)rectangle2的左边,即C >= Erectangle1的上边都小于(等于)rectangle2的下边,即B >= H
最后, 要考虑重叠的情况,这种其实很好考虑,因为一定有重叠,所以可以找到上下左右边界
上边界,取两个矩形的上边界的最小值
下边界,取两个矩形的下边界的最大值
左边界,取两个矩形的左边界的最大值
右边界,取两个矩形的右边界的最小值
得到重叠面积,只需要两个矩形相加减去重叠面积即可!
有疑惑的地方,要留言哦~
代码:
class Solution:
def computeArea(self, A: int, B: int, C: int, D: int, E: int, F: int, G: int, H: int) -> int:
# 调整两个矩形位置, 让第一个矩形靠最左边
if A > E:
return self.computeArea(E, F, G, H, A, B, C, D)
# 没有重叠的情况
if B >= H or D <= F or C <= E:
return abs(A - C) * abs(B - D) + abs(E - G) * abs(F - H)
# 重叠情况
# xia
down = max(A, E)
# shang
up = min(C, G)
# zuo
left = max(B, F)
# you
right = min(D, H)
return abs(A - C) * abs(B - D) + abs(E - G) * abs(F - H) - abs(up - down) * abs(left - right)
[LeetCode] 223.矩形面积的更多相关文章
- LeetCode 223. 矩形面积(Rectangle Area)
223. 矩形面积 223. Rectangle Area 题目描述 在二维平面上计算出两个由直线构成的矩形重叠后形成的总面积. 每个矩形由其左下顶点和右上顶点坐标表示,如图所示. LeetCode2 ...
- Java实现 LeetCode 223 矩形面积
223. 矩形面积 在二维平面上计算出两个由直线构成的矩形重叠后形成的总面积. 每个矩形由其左下顶点和右上顶点坐标表示,如图所示. Rectangle Area 示例: 输入: -3, 0, 3, 4 ...
- [LeetCode] 223. Rectangle Area 矩形面积
Find the total area covered by two rectilinearrectangles in a 2D plane. Each rectangle is defined by ...
- [LeetCode]223. Rectangle Area矩形面积
/* 像是一道数据分析题 思路就是两个矩形面积之和减去叠加面积之和 */ public int computeArea(int A, int B, int C, int D, int E, int F ...
- [LeetCode] Rectangle Area 矩形面积
Find the total area covered by two rectilinear rectangles in a2D plane. Each rectangle is defined by ...
- LeetCode:矩形区域【223】
LeetCode:矩形区域[223] 题目描述 在二维平面上计算出两个由直线构成的矩形重叠后形成的总面积. 每个矩形由其左下顶点和右上顶点坐标表示,如图所示. 示例: 输入: -3, 0, 3, 4, ...
- [LeetCode] 850. Rectangle Area II 矩形面积之二
We are given a list of (axis-aligned) rectangles. Each rectangle[i] = [x1, y1, x2, y2] , where (x1, ...
- [LeetCode] 矩形面积
题目链接: https://leetcode-cn.com/problems/rectangle-area 难度:中等 通过率:41.3% 题目描述: 在 二维 平面上计算出两个 由直线构成的 矩形重 ...
- [Swift]LeetCode223. 矩形面积 | Rectangle Area
Find the total area covered by two rectilinear rectangles in a 2D plane. Each rectangle is defined b ...
随机推荐
- liunx系统中安装lua以及torch
一直在用pytorch,最近在做项目的时候,遇到了torch的开源代码,所以又开始不得不接触torch以及他所依赖的环境lua. liunx下lua环境的配置代码如下: ''' curl -R -O ...
- Codeforces Round #560 Div. 3
题目链接:戳我 于是...风浔凌弱菜又去写了一场div.3 总的来说,真的是比较简单.......就是.......不开long long见祖宗 贴上题解-- A 给定一个数,为01串,每次可以翻转一 ...
- Unity3D_(API)Quaternion四元数中的Quaternion.LookRotation()
四元数百度百科: 传送门 四元数官方文档: 传送门 欧拉旋转.四元数.矩阵旋转之间的差异: 传送门 四元数转换为欧拉角eulerAngles 官方文档: 传送门 欧拉角转换为四元数Euler 官方文档 ...
- Java中FileOutputStream流的write方法
本文为大家分享了FileOutputStream流的write方法,供大家参考,具体内容如下 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ...
- idea maven sync Cannot resolve xxx 的解决方案
经常会出现这种奇葩情况,提示找不到包 其实是因为网络波动或者突然断掉,导致包更新出现问题 直接去maven的仓库目录 找到不能找到的包 删掉相关目录 然后重新更新maven就行了 比如 直接去仓库目录 ...
- 2019Java第十四周课程总结
关于记事本代码上周已经写过了,这次把他粘过来了,如下: 记事本 package jishiben; import java.awt.event.ActionEvent; import java.awt ...
- 【Spark机器学习速成宝典】基础篇01Windows下spark开发环境搭建+sbt+idea(Scala版)
注意: spark用2.1.1 scala用2.11.11 材料准备 spark安装包 JDK 8 IDEA开发工具 scala 2.11.8 (注:spark2.1.0环境于scala2.11环境开 ...
- shell sed应用
sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作,下面先了解一下sed的用法sed命令行格式为:sed [-nefri] ...
- 5.Python使用模块
1.模块的 作用 2.模块的含义 3.模块的 导入 因此模块能够划分系统命名空间,避免了不同文件的变量重名的问题. Python的模块使得独立的文件连接成了一个巨大 ...
- 内网IPC$入侵
一.域操作相关的命令1.查看域用户 net user/domain2.查看有几个域 net view/domain3.查看域内的主机 net view/domain: XXX4.查看域里面的组 net ...