LeetCode : 223. 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.

Rectangle Area

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

分析:题目就是要求两个平面呢两个矩形的面积,包含矩形相交与相离的情况。

相离时很简单,就是两个矩形的面积之和,相交就是两个矩形面积之和减去出相交的面积。

所以,分以下步骤解决:

1.判断是否相交

2.求出相交矩形的面积。

弄清楚如何判断两个矩形是否相交以及相交矩形的左下角及右上角坐标即可

AC代码如下:

 int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) 
    {
        if(!IsInsection( A, B, C, D, E, F, G, H))
            return (C-A)*(D-B)+(G-E)*(H-F);
        else
            return (C-A)*(D-B)+(G-E)*(H-F) - InsectionArea( A, B, C, D, E, F, G, H);
    }
    bool IsInsection(int A, int B, int C, int D, int E, int F, int G, int H)//判断两个矩形是否相交
    {
        if(D < F || C < E || H < B || G < A)
            return false;
        else
            return true;
    }
    int InsectionArea(int A, int B, int C, int D, int E, int F, int G, int H)//相交矩形的面积
    {
        int minx = max(A,E);
        int miny = max(B,F);
        int maxx = min(C,G);
        int maxy = min(D,H);
        return (maxx - minx)*(maxy - miny);
    }



阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014221279/article/details/52370122
个人分类: leetcode刷题
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

LeetCode : 223. Rectangle Area

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭