Python | Leetcode Python题解之第391题完美矩形

题目:

题解:

python 复制代码
class Solution:
    def isRectangleCover(self, rectangles: List[List[int]]) -> bool:
        area, minX, minY, maxX, maxY = 0, rectangles[0][0], rectangles[0][1], rectangles[0][2], rectangles[0][3]
        cnt = defaultdict(int)
        for rect in rectangles:
            x, y, a, b = rect[0], rect[1], rect[2], rect[3]
            area += (a - x) * (b - y)

            minX = min(minX, x)
            minY = min(minY, y)
            maxX = max(maxX, a)
            maxY = max(maxY, b)

            cnt[(x, y)] += 1
            cnt[(x, b)] += 1
            cnt[(a, y)] += 1
            cnt[(a, b)] += 1

        if area != (maxX - minX) * (maxY - minY) or cnt[(minX, minY)] != 1 or cnt[(minX, maxY)] != 1 or cnt[(maxX, minY)] != 1 or cnt[(maxX, maxY)] != 1:
            return False

        del cnt[(minX, minY)], cnt[(minX, maxY)], cnt[(maxX, minY)], cnt[(maxX, maxY)]

        return all(c == 2 or c == 4 for c in cnt.values())
相关推荐
Sonetto19998 分钟前
【Python】【面试凉经】Fastapi为什么Fast
python·面试·flask·fastapi·凉经
zwjapple22 分钟前
python创建flask项目
开发语言·python·flask
阳洞洞24 分钟前
leetcode 74. Search a 2D Matrix
leetcode·二分查找
YuforiaCode24 分钟前
LeetCode 219.存在重复元素 II
算法·leetcode·职场和发展
小雅痞26 分钟前
[Java][Leetcode middle] 151. 反转字符串中的单词
java·leetcode
声声codeGrandMaster1 小时前
Django框架的前端部分使用Ajax请求一
前端·后端·python·ajax·django
卡尔曼的BD SLAMer2 小时前
计算机视觉与深度学习 | Python实现EMD-SSA-VMD-LSTM时间序列预测(完整源码和数据)
python·深度学习·算法·cnn·lstm
nuclear20113 小时前
使用Python将 Excel 中的图表、形状和其他元素导出为图片
python·excel·将excel图表转换为图片·将excel文本框转换为图片
小袁拒绝摆烂5 小时前
OpenCV-python灰度变化和直方图修正类型
python·opencv·计算机视觉
Dxy12393102168 小时前
Python 条件语句详解
开发语言·python