计算两个矩形union的面积
若相离 直接返回面积之和
若相交或包含,需要减去相交的面积
相交的面积 = (最小上界-最大下界)* (最小右界-最大左界)
class Solution {
public int computeArea(int ax1, int ay1, int ax2, int ay2, int bx1, int by1, int bx2, int by2) {
int ans = (ay2-ay1)*(ax2-ax1) + (by2-by1)*(bx2-bx1);
if(ay1>=by2 || by1>=ay2 || bx1>=ax2 || ax1>=bx2)
return ans;
return ans - (Math.min(ay2,by2)-Math.max(ay1,by1))*(Math.min(ax2,bx2)-Math.max(ax1,bx1));
}
}
本文介绍了一种计算两个矩形并集面积的方法。如果两个矩形相离,则直接返回它们面积之和;若相交或一个包含另一个,则需要从总面积中减去相交部分的面积。相交面积通过计算最小上界与最大下界、最小右界与最大左界之间的差值得到。
733

被折叠的 条评论
为什么被折叠?



