题目
我的代码(效率较高)
class Solution(object):
def isRectangleOverlap(self, rec1, rec2):
"""
:type rec1: List[int]
:type rec2: List[int]
:rtype: bool
"""
if rec1[0]>=rec2[2]:
return False
if rec1[1]>=rec2[3]:
return False
if rec2[0]>=rec1[2]:
return False
if rec2[1]>=rec1[3]:
return False
else:
return True
优秀代码
与上面代码类似。
class Solution(object):
def isRectangleOverlap(self, rec1, rec2):
"""
:type rec1: List[int]
:type rec2: List[int]
:rtype: bool
"""
# method 1, 16ms, 100%; 10.7MB, %
# 判斷是否重疊太麻煩, 太多種類;
# 不如直接判斷是否沒重疊
# 只要四個點都在外面就可以了
# 總共只有四種情況...
for idx, num in enumerate(rec2):
if idx == 0:
if rec1[2] <= num:
return False
elif idx == 1:
if rec1[3] <= num:
return False
elif idx == 2:
if rec1[0] >= num:
return False
else:
if rec1[1] >= num:
return False
return True