leetcode 223

Posted 同学少年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 223相关的知识,希望对你有一定的参考价值。

题目链接:

Rectangle Area

整体思想:

给定两个矩形,左上角和右上角点的坐标已经给定。求这两个矩形覆盖的面积。分两种情况,一种是两个矩形不相交,则
覆盖面积为两个矩形的面积和,另一种情况是两个矩形相交,则所求面积为两个矩形面积的和减去相交的面积,这里要注
意一个矩形可能为一个点,或者一条直线,要特殊判断一下。

参考代码:

public class Solution 
    public int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) 
        //两个矩形不相交,或者有矩形是一条直线或一个点
        int total = (C - A) * (D - B) + (G - E) * (H - F);
        if(E >= C || A >= G || B >= H || F >= D || A == C || B == D || E == G || F == H)
            return total;
        
        //总面积-交叉的面积(交叉面积的长等于小的右边界-大的左边界, 宽等于小的上边界-大的下边界)
        return total - (Math.min(C, G) - Math.max(A, E)) * (Math.min(D, H) - Math.max(B, F));
    

以上是关于leetcode 223的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 223 Rectangle Area(矩形面积)

LeetCode 223. 矩形面积(Rectangle Area)

leetcode 223: Rectangle Area

leetcode 223. 矩形面积

Leetcode 223 Rectangle Area

LeetCode223. Rectangle Area 解题小结