在二維平面上計算出兩個由直線構成的矩形重疊後形成的總面積。
每個矩形由其左下頂點和右上頂點座標表示,如圖所示。
Rectangle Area
示例:
輸入: -3, 0, 3, 4, 0, -1, 9, 2
輸出: 45
說明: 假設矩形面積不會超出 int 的範圍。
// 數學問題
class Solution {
public int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
if(E>=C||B>=H||F>=D||A>=G) return (D-B)*(C-A)+(H-F)*(G-E);
int h=Math.min(D,H)-Math.max(B,F); //計算重複面積的高
int l=Math.min(C,G)-Math.max(A,E); //計算重複面積的寬
return (D-B)*(C-A)+(H-F)*(G-E)-h*l;
}
}