223. Rectangle Area

比较巧妙的办法是先算互不cover的情况。。

然后讨论COVER情况就方便很多了。

public class Solution {
    public int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
        int a = (C - A) * (D - B);
        int b = (G - E) * (H - F);
        if (B >= H || F >= D || C <= E || G <= A) return a + b;
        
        int width = Math.min(C, G) - Math.max(A, E);
        int height = Math.min(D, H) - Math.max(B, F);
        return a + b - width * height;
    }
}
posted @ 2016-11-05 13:30  哇呀呀..生气啦~  阅读(74)  评论(0)    收藏  举报