检查是否可以在Python中以宽度的非升序重新排列矩形

假设我们有一个用矩形的长度和宽度表示的矩形列表。我们可以将任何矩形旋转90度,因此旋转后,宽度将变为长度,反之亦然。我们必须检查是否可以按宽度的非递增顺序对矩形进行排序。

因此,如果输入像rects = [[4,5],[5,7],[4,6]],那么当我们旋转时,由于宽度为[5,7,6],因此输出将为True最后两个矩形,则宽度将为[5,5,4],这是非递增方式。

示例

让我们看下面的实现以更好地理解-

def solve(rect):
   m = 99999
   for i in range(len(rect)):
      if max(rect[i][0], rect[i][1]) <= m:
         m = max(rect[i][0], rect[i][1])
      elif min(rect[i][0], rect[i][1]) <= m:
         m = min(rect[i][0], rect[i][1])
      else:
         return False
   return True
rects = [[4, 5], [5, 7], [4, 6]]
print(solve(rects))

输入值

[[4, 5], [5, 7], [4, 6]]
输出结果
True

猜你喜欢