Rectangle Area
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](https://leetcode.com/static/images/problemset/rectangle_area.png)
Assume that the total area is never beyond the maximum possible value of int.
思路:
数学的推导计算
我的代码:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
public class Solution { public int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) { int oneArea = (C-A)*(D-B); int twoArea = (G-E)*(H-F); int left = Math.max(A, E); int right = Math.min(C, G); int down = Math.max(B, F); int top = Math.min(D, H); int intersect = 0; if(left < right && down < top) intersect = (right-left)*(top-down); return oneArea + twoArea - intersect; } }
学习之处:
- 是看了别人的代码才想到了怎么做,因为之前自己的代码太挫了,必须通过各种if else才能得到两个矩形的关系,别人的方法是通过左边界,右边界,上边界,下边界确定了矩形的面试,值得学习。
posted on 2015-06-16 10:22 zhouzhou0615 阅读(261) 评论(0) 编辑 收藏 举报