[leetcode] 836. Rectangle Overlap @ python

版权声明:版权归个人所有,未经博主允许,禁止转载 https://blog.csdn.net/danspace1/article/details/86553142

原题

A rectangle is represented as a list [x1, y1, x2, y2], where (x1, y1) are the coordinates of its bottom-left corner, and (x2, y2) are the coordinates of its top-right corner.

Two rectangles overlap if the area of their intersection is positive. To be clear, two rectangles that only touch at the corner or edges do not overlap.

Given two (axis-aligned) rectangles, return whether they overlap.

Example 1:

Input: rec1 = [0,0,2,2], rec2 = [1,1,3,3]
Output: true
Example 2:

Input: rec1 = [0,0,1,1], rec2 = [1,0,2,1]
Output: false
Notes:

Both rectangles rec1 and rec2 are lists of 4 integers.
All coordinates in rectangles will be between -10^9 and 10^9.

解法

参考: https://blog.csdn.net/fuxuemingzhu/article/details/80472764
以rec1为基准, 检查rec2的位置, 不相交的情况有4种: rec2在rec1的左边, 下边, 右边, 上边, 否则相交.

代码

class Solution(object):
def isRectangleOverlap(self, rec1, rec2):
“”"
:type rec1: List[int]
:type rec2: List[int]
:rtype: bool
“”"
x1, y1, x2, y2 = rec1
x3, y3, x4, y4 = rec2
# when not overlap
if x4 <= x1 or y4 <= y1 or x3 >= x2 or y3 >= y2:
return False
return True

猜你喜欢

转载自blog.csdn.net/danspace1/article/details/86553142