您的位置:首页 > 其它

leetcode 223: Rectangle Area

2015-06-10 03:25 337 查看

Rectangle Area

Total Accepted: 2205
Total Submissions: 8138

Find the total area covered by two rectilinear rectangles in a2D 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 beyond the maximum possible value of
int
.

[思路]

求出两个区域的面积, 然后减去overlapping的区域, 即为所求.

[CODE]

public 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);

int overlapRegion = overlap(A, B, C, D, E, F, G, H);
return area1 + area2 - overlapRegion;
}

private int overlap(int A, int B, int C, int D, int E, int F, int G, int H) {
int h1 = Math.max(A, E);
int h2 = Math.min(C, G);
int h = h2 - h1;

int v1 = Math.max(B, F);
int v2 = Math.min(D, H);
int v = v2 - v1;

if(h<=0 || v<=0) return 0;
else return h*v;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: