题目描述(中等难度)

    求出被两个矩形覆盖的面积。

    解法一

    这道题没有特殊的算法,就是对题目的分析,下边是我的思路。

    首先将问题简单化,考虑如果没有重叠区域呢?

    把两个矩形叫做 A 和 B,不重叠就有四种情况,A 在 B 左边,A 在 B 右边,A 在 B 上边,A 在 B 下边。

    判断上边的四种情况也很简单,比如判断 A 是否在 B 左边,只需要判断 A 的最右边的坐标是否小于 B 的最左边的坐标即可。其他情况类似。

    接下来考虑有重叠的情况。

    此时我们只要求出重叠形成的矩形的面积,然后用两个矩形的面积减去重叠矩形的面积就是两个矩形覆盖的面积了。

    而求重叠矩形的面积也很简单,我们只需要确认重叠矩形的四条边即可,可以结合题目的图想。

    左边只需选择两个矩形的两条左边靠右的那条。

    上边只需选择两个矩形的两条上边靠下的那条。

    下边只需选择两个矩形的两条下边靠上的那条。

    确定以后,重叠的矩形的面积也就可以算出来了。

    这道题没有什么算法,只需要分析题目,适当的分类将题目简单化,然后一一攻破即可。

    添加好友一起进步~

    如果想系统的学习数据结构和算法,强烈推荐一个我之前学过的课程,可以点击 这里 查看详情