leetcode RectangleArea
z
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import java.util.Arrays;

public class RectangleArea {
/**
* Rectangle Area
* 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
* -------
*| |
*| --+---
*| | | |
* ----+-- |
* | |
* ------
* Example:
*
* Input: A = -3, B = 0, C = 3, D = 4, E = 0, F = -1, G = 9, H = 2
* Output: 45
*/
public int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
int total = (G - E) * (H - F) + (C - A) * (D - B);
if (B >= H || D <= F || C <= E || A>= G){
return total;
}
int x[] = {A, C, E, G};
int y[] = {B, D, F, H};
Arrays.sort(x);
Arrays.sort(y);
int overlaping = (x[2]-x[1]) * (y[2]-y[1]);
return total - overlaping;

}
public static void main(String[] args){

}
}