Find the total area covered by and rectilinear rectangles in a 2D plane.
Each rectangle was defined by its bottom left corner and top right corner as shown in the figure.
Assume the total area is never beyond the maximum possible value of int.
For this problem, if the idea is correct, the solution is relatively simple.
1. If there is no overlap, the total area of the two rectangles is returned directly: (C-A) * (d-b) + (G-E) * (h-f). Determine if two rectangles overlap: if (C<e | | G<a | | H<b | | D<F).
2. If there is overlap, calculate the size of the overlapping area. Total area-overlapping area.
1 Public classSolution {2 Public intComputearea (intAintBintCintDintEintFintGintH) {3 intTotal = (c-a) * (d-b) + (G-E) * (H-F);4 if(B>h | | C<e | | d<f | | A>G)returnTotal ;5 intL = 0;6 if(e>a) L = math.min ((C-E), (gE));7 ElseL = math.min ((c-a), (gA));8 intH = 0;9 if(d>h) H = Math.min ((h-b), (HF));Ten Elseh = math.min ((d-b), (dF)); One return(Total-(l*h)); A } -}
Calculating the length and width of overlapping parts is a difficult point to identify the possible overlapping situations, and then use concise code to express it.
Leetcode OJ 223.Rectangle Area