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.

Rectangle Area——LeetCode-LMLPHP

Assume that the total area is never beyond the maximum possible value of int.

题目大意:给定两个矩形的左下、右上坐标,求出两个矩形一共覆盖的面积。

解题思路:两个矩形面积加起来减去重叠的即可。

public class Solution {
public int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
int sq = (C-A)*(D-B)+(G-E)*(H-F);
long len = (long)Math.min(C,G)-(long)Math.max(A,E);
long we = (long)Math.min(D,H)-(long)Math.max(B,F);
if(len<=0||we<=0){
return sq;
}
return (int)(sq-len*we);
}
}
04-21 10:59
查看更多