223. Rectangle Area

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
public int computeArea(int ax1, int ay1, int ax2, int ay2, int bx1, int by1, int bx2, int by2) {
int overlap;
if (bx2 <= ax1 || bx1 >= ax2 || by2 <= ay1 || by1 >= ay2) {
overlap = 0;
} else {
int x = Math.min(ax2, bx2) - Math.max(ax1, bx1);
int y = Math.min(ay2, by2) - Math.max(ay1, by1);
overlap = x * y;
}

return (ay2 - ay1) * (ax2 - ax1) + (by2 - by1) * (bx2 - bx1) - overlap;
}
}

References

223. Rectangle Area