矩陣面積

二維平面上計算出兩個由直線構成的矩形重疊後形成的總面積。

每個矩形由其左下頂點和右上頂點座標表示,如圖所示。

 

示例:

輸入: -3, 0, 3, 4, 0, -1, 9, 2
輸出: 45

思路,重疊部分寬要麼爲0,要麼是(最靠左的右邊)與(最靠右的左邊)相減,同理,高也是

由於相減時出現整數溢出,相減前需要轉化爲long類型

 

class Solution {
public:
    int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
        long s1=(C-A)*(D-B);
        long s2=(G-E)*(H-F);
        
        long w=(long(min(C,G))-long(max(A,E)))>0?long(min(C,G))-long(max(A,E)):0;
        long h=(long(min(D,H))-long(max(B,F)))>0?long(min(D,H))-long(max(B,F)):0;
        long z=s1-w*h+s2;
        return z;
        
    }
};

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章