LeetCode223. Rectangle Area 解题小结

Posted 医生工程师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode223. 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.

Assume that the total area is never beyond the maximum possible value of int.

 首先判断两个矩形是否相交,不相交直接返回两个矩形面积,相交的话需要计算相交部分的左下点和右上点的坐标,用两矩形面积减去相交面积就可以了。

class Solution {
public:
    int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
        int recArea = area(A,B,C,D) + area(E,F,G,H);
        if (A >= G || C <= E || D <= F || B >= H) return recArea;
        
        int recMinx = max(A,E);
        int recMiny = max(B,F);
        int recMaxx = min(C,G);
        int recMaxy = min(D,H);
        
        return recArea - area(recMinx, recMiny, recMaxx, recMaxy);
    }
    
    int area(int A, int B, int C, int D){
        return (C-A)*(D-B);
    }
};

 

以上是关于LeetCode223. Rectangle Area 解题小结的主要内容,如果未能解决你的问题,请参考以下文章

leetcode 223 Rectangle Area

Leetcode 223 Rectangle Area

LeetCode223. Rectangle Area 解题小结

leetcode 223. Rectangle Area 计算面积---------- java

Leetcode_223_Rectangle Area

LeetCode 223 Rectangle Area(矩形面积)