矩形重叠

作者: _阿南_ | 来源:发表于2020-03-18 13:07 被阅读0次

题目:

矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。

如果相交的面积为正,则称两矩形重叠。需要明确的是,只在角或边接触的两个矩形不构成重叠。

给出两个矩形,判断它们是否重叠并返回结果。

示例 1:

输入:rec1 = [0,0,2,2], rec2 = [1,1,3,3]
输出:true
示例 2:

输入:rec1 = [0,0,1,1], rec2 = [1,0,2,1]
输出:false
说明:

两个矩形 rec1 和 rec2 都以含有四个整数的列表的形式给出。
矩形中的所有坐标都处于 -10^9 和 10^9 之间。

题目的理解:

尝试了好多种方式:
(1)使用顶点判断。存在边包含的问题,大矩形包含小矩形的问题。 失败
(2)去除rec2最外面的一个边框判断。存在rec2比rec1大的问题。 失败
(3)使用群举法将rec1和rec2中的所有点取出并保存在set数组A和B中,判断A和B是否有交集。 存在内存过大的问题。失败
(4)去除rec2最外面的一个边框判断, 联合去除rec1最外面的一个边框判断。存在当4个点都不存在包含关系的问题。 失败
(5)rec1的边框和rec2第二层边框的交集。存在rec1包含rec2的问题。 存在超出内存范围的问题。失败
(6)rec2的左下角坐标必须在rec1的右上角坐标以内,rec2的右上角左边必须在rec1的左下角坐标以内。 成功

python实现

class Solution:
    def isRectangleOverlap(self, rec1: List[int], rec2: List[int]) -> bool:
        if rec2[0] < rec1[2] and rec2[1] < rec1[3] and rec2[2] > rec1[0] and rec2[3] > rec1[1]:
            return True
        
        return False

提交

天啊,把题目想的太复杂了,原来是那么简单的一个判断题啊,哭晕在天际

// END 好好工作,好好学习

相关文章

  • 矩形重叠

    题目: 题目的理解: 尝试了好多种方式:(1)使用顶点判断。存在边包含的问题,大矩形包含小矩形的问题。 失败(2)...

  • 矩形重叠

    题目 矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, ...

  • 矩形重叠

    题目: 矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2,...

  • 223. 矩形面积

    首先判断是不是有重叠部分,其次计算重叠的矩形重叠矩形的左边是两条左边的边,最右的一条重叠矩形的右边是两条右边的边,...

  • 836. 矩形重叠

    只要去除掉:右,左,上,下。这四种情况就可以了

  • 836. 矩形重叠

    矩形重叠 题目描述 矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐...

  • 836-矩形重叠

    矩形重叠 题目 矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,...

  • 836.矩形重叠

    解题思路 解法一:逆向思维 直接证明两个矩形相交的情况会有很多种,所以可以逆向考虑两个矩形不相交的情形。不妨假设固...

  • 836. 矩形重叠

    https://leetcode-cn.com/problems/rectangle-overlap/

  • 010.4,矩形覆盖

    矩形覆盖 题目描述我们可以用 21 的小矩形横着或者竖着去覆盖更大的矩形。请问用 n 个 21 的小矩形无重叠地覆...

网友评论

    本文标题:矩形重叠

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