Leetcode - Rectangle Area

My code:

public class Solution {
    public int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
         int area = (D - B) * (C - A) + (H - F) * (G - E);
         if (A >= G || B >= H || C <= E || D <= F)
         {
             return area;
         }

         int top = Math.min(D, H);
         int right = Math.min(C, G);
         int bottom = Math.max(B, F);
         int left = Math.max(A, E);

         return area - (top - bottom) * (right - left);
    }
}

沒有任何意思的題目。。。雖然我沒有做出來。
先判斷兩個矩形是否會相交,不會的話就返回總面積。
會的話,就減去重復的,再返回。

**
總結: Math
**

Anyway, Good luck, Richardo!

My 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 = (D - B) * (C - A);
        int area2 = (H - F) * (G - E);
        int overlap = 0;
        int left = Math.max(A, E);
        int right = Math.min(C, G);
        int bottom = Math.max(B, F);
        int top = Math.min(D, H);
        
        if (right > left && top > bottom) {
            overlap = (right - left) * (top - bottom);
        }
        
        return area1 + area2 - overlap;
    }
}

reference:
https://discuss.leetcode.com/topic/15733/my-java-solution-sum-of-areas-overlapped-area

Anyway, Good luck, Richardo! -- 10/12/2016

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • My code: 這道題目我沒有做出來。應該說,我做出來了,但是超時了。我也想到了用dp,但是用的是二維數組。后來...
    Richardo92閱讀 530評論 0 0
  • My code: My test result: 這道題目最簡單的做法,就是直接隨便遍歷。但肯定是不對的,太慢了。...
    Richardo92閱讀 1,059評論 0 1
  • My code: My test result: 這次作業也還好,因為已經有了之前的思路。可能太累了,AC之后,自...
    Richardo92閱讀 313評論 1 1
  • 老伴兒回老家探親有一周了。 第一次丟了魂兒似的想她,第一次理解了那句諺語的深刻:秤桿離不開秤砣,老頭兒...
    肖多閱讀 292評論 0 0
  • 文:半夏 初冬的日子 風里 已經滿是涼意 步履匆匆 往家里走去 離家還有好幾米 我就一眼看到了你 沒...
    llz半夏閱讀 115評論 0 0