Leetcode PHP题解--D129 836. Rectangle Overlap

码农天地 -
Leetcode PHP题解--D129 836. Rectangle Overlap
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;
    }
}

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

特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。

php介绍

PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。

Tags 标签

leetcodephp

扩展阅读

加个好友,技术交流

1628738909466805.jpg