Rectangle Area
程序员文章站
2022-06-04 10:55:00
...
Find the total area covered by two rectilinear rectangles in a 2D plane.
Each rectangle is defined by its bottom left corner and top right corner as shown in the figure.
Example:
Input: A = -3, B = 0, C = 3, D = 4, E = 0, F = -1, G = 9, H = 2 Output: 45
思路:两个面积之和,等于两个面积减去公共的overlap面积;
求公共的面积,等于 右边一维的最小值,减去左边一维的最大值;同理求得 y轴的length;两者相乘就是overlap的面积;
class Solution {
public int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
int abcd = (C - A) * (D - B);
int efgh = (G - E) * (H - F);
int overlap = getOverlapLength(A, C, E, G) * getOverlapLength(B, D, F, H);
return abcd + efgh - overlap;
}
private int getOverlapLength(int A, int C, int E, int G) {
if(E > C || G < A) {
return 0;
}
return Math.min(C, G) - Math.max(A, E);
}
}
上一篇: 恶搞大师之成名作品展,瞬间刷爆你的眼界
下一篇: 输入法里的秘密
推荐阅读
-
【题解】hdu1506 Largest Rectangle in a Histogram
-
外星人Area-51m显卡升级套件发布 年内完全兑现模块化承诺
-
2019牛客暑期多校训练营(第二场)H Second Large Rectangle
-
html/css中map和area的应用
-
layui弹出层layer的area过大被遮挡
-
i9-9900K加持!这就是戴尔外星人AREA-51M:47999买不买?
-
蓝屏代码PAGE_FAULT_IN_NONPAGED_AREA的解决方法
-
戴尔Alienware Area-51m:i9-9900K+RTX2080还要啥台机?
-
members-area.exe是什么进程 members-area进程查询
-
OSPF区域验证area area-id authentication