当前位置:首页 » 其他

[leetcode]Rectangle Area

2015-06-12 10:32 本站整理 浏览(15)

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.

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

题意:求两个长方形覆盖的面积。

class Solution {
public:
    int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
        int totalArea = (C - A) * (D -  B) + (G - E) * (H - F);
        int x1, y1;
        int x2, y2;
        
        x2 = min(C, G);
        y2 = min(D, H); 
        
        x1 = max(A, E);
        y1 = max(B, F);
        
        if(x1 >= x2 || y1 >= y2) return totalArea;
        
        return totalArea - (x1 - x2) * (y1 - y2);
    }
};