0223. Rectangle Area

https://leetcode.com/problems/rectangle-area

Description

Given the coordinates of two rectilinear rectangles in a 2D plane, return the total area covered by the two rectangles.

The first rectangle is defined by its bottom-left corner (ax1, ay1) and its top-right corner (ax2, ay2).

The second rectangle is defined by its bottom-left corner (bx1, by1) and its top-right corner (bx2, by2).

Example 1:

Rectangle Area
**Input:** ax1 = -3, ay1 = 0, ax2 = 3, ay2 = 4, bx1 = 0, by1 = -1, bx2 = 9, by2 = 2
**Output:** 45

Example 2:

**Input:** ax1 = -2, ay1 = -2, ax2 = 2, ay2 = 2, bx1 = -2, by1 = -2, bx2 = 2, by2 = 2
**Output:** 16

Constraints:

  • -104 <= ax1, ay1, ax2, ay2, bx1, by1, bx2, by2 <= 104

ac

class Solution {
    public int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
        int area1 = (C - A) * (D - B);
        int area2 = (G - E) * (H - F);

        // overlap?
        int left2 = Math.max(A, E);
        int right1 = Math.min(C, G);
        int bottom2 = Math.max(B, F);
        int top1 = Math.min(D, H);

        int overlap = 0;
        if (left2 < right1 && bottom2 < top1) {
            overlap = (right1 - left2) * (top1 - bottom2); 
        }

        return area1 + area2 - overlap;
    }
}
/**
1. area of 2 rectangles
2. area of overlap section
**/

Last updated

Was this helpful?