美文网首页Leetcode题解-PHP版
Leetcode PHP题解--D129 836. Rectan

Leetcode PHP题解--D129 836. Rectan

作者: skys215 | 来源:发表于2020-10-20 10:47 被阅读0次

    D129 836. Rectangle Overlap

    题目链接

    836. Rectangle Overlap

    题目分析

    给两个矩形的左下角和右上角的坐标,判断该矩形有没有重叠。边线和角相同不算重叠。

    解题思路

    我们先忽略Y轴,只考虑X轴。在x轴上,矩形A和矩形B的横坐标从小到大排列有6种关系:

    Ax1, Ax2, Bx1, Bx2
    Ax1, Bx1, Ax2, Bx2
    Ax1, Bx1, Bx2, Ax2
    Bx1, Ax1, Bx1, Ax2
    Bx1, Ax1, Ax2, Bx2
    Bx1, Bx2, Ax1, Ax2
    

    其中,第一个和最后一个是不重叠的情况,中间4种都是会重叠的。

    在拿到坐标后,判断坐标之间是否有这种关系。Y轴同理。

    最终代码

    <?php
    class Solution {
    
        /**
         * @param Integer[] $rec1
         * @param Integer[] $rec2
         * @return Boolean
         */
        const BOTTOM_LEFT_X = 0;
        const BOTTOM_LEFT_Y = 1;
        const TOP_RIGHT_X = 2;
        const TOP_RIGHT_Y = 3;
        function isRectangleOverlap($rec1, $rec2) {
            if($rec1[self::TOP_RIGHT_X]<=$rec2[self::BOTTOM_LEFT_X]
              || $rec2[self::TOP_RIGHT_X]<=$rec1[self::BOTTOM_LEFT_X] ){
                return false;
            }
            if($rec1[self::TOP_RIGHT_Y]<=$rec2[self::BOTTOM_LEFT_Y]
              || $rec2[self::TOP_RIGHT_Y]<=$rec1[self::BOTTOM_LEFT_Y] ){
                return false;
            }
            return true;
        }
    }
    

    若觉得本文章对你有用,欢迎用爱发电资助。

    相关文章

      网友评论

        本文标题:Leetcode PHP题解--D129 836. Rectan

        本文链接:https://www.haomeiwen.com/subject/moormktx.html