当前位置: 首页 > article >正文

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

题目:

题解:

func isRectangleCover(rectangles [][]int) bool {
    type point struct{ x, y int }
    area, minX, minY, maxX, maxY := 0, rectangles[0][0], rectangles[0][1], rectangles[0][2], rectangles[0][3]
    cnt := map[point]int{}
    for _, rect := range 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[point{x, y}]++
        cnt[point{x, b}]++
        cnt[point{a, y}]++
        cnt[point{a, b}]++
    }

    if area != (maxX-minX)*(maxY-minY) || cnt[point{minX, minY}] != 1 || cnt[point{minX, maxY}] != 1 || cnt[point{maxX, minY}] != 1 || cnt[point{maxX, maxY}] != 1 {
        return false
    }

    delete(cnt, point{minX, minY})
    delete(cnt, point{minX, maxY})
    delete(cnt, point{maxX, minY})
    delete(cnt, point{maxX, maxY})

    for _, c := range cnt {
        if c != 2 && c != 4 {
            return false
        }
    }
    return true
}

func min(a, b int) int {
    if a > b {
        return b
    }
    return a
}

func max(a, b int) int {
    if b > a {
        return b
    }
    return a
}

http://www.kler.cn/news/293375.html

相关文章:

  • 实战docker第一天——windows安装docker,测试,并解决被墙办法
  • 【最后一轮征稿】第三届人工智能、物联网和云计算技术国际会议(AIoTC 2024)
  • Oracle同一台服务器创建多个数据库
  • 计算机毕业设计选题推荐-中华诗词文化交流平台-Java/Python项目实战
  • cmd常用指令举例说明使用方法
  • Redis从入门再再到入门(下)
  • Opencv中的直方图(5)计算EMD距离的函数EMD()的使用
  • 面经学习(hbkj实习)
  • WPF 点在控件内 判断
  • 时序预测 | 基于DLinear+PatchTST多变量时间序列预测模型(pytorch)
  • 把iconfont 图标导出为json
  • rsync搭建全网备份
  • 奥威让您更懂现金流情况
  • 【2024数模国赛赛题思路公开】国赛E题思路丨附可运行代码丨无偿自提
  • CRUD的最佳实践,联动前后端,包含微信小程序,API,HTML等(三)
  • Kubernetes--服务发布(Service、Ingress)
  • ubuntu24.04 为什么扬声器没有声音,但是戴上耳机有声音
  • Docker 配置国内镜像源
  • SpringCloud:构建分布式系统的利器
  • 【全网首发】2024数学建模国赛C题39页word版成品论文【附带py+matlab双版本解题代码+可视化图表】
  • 深度学习基础案例4--构建CNN卷积神经网络实现对猴痘病的识别(测试集准确率86.5%)
  • 【解决bug之路】npm install node-sass(^4.14.1)连环报错解决!!!(Windows)
  • Python 语法糖:让编程更简单
  • redis的持久化RDB和AOF
  • Qt 实战(10)MVD | 10.1、MVD机制详解
  • RabbitMQ 基础架构流程 数据隔离 创建用户
  • 利用深度学习实现验证码识别-2-使用Python导出ONNX模型并在Java中调用实现验证码识别
  • 对极约束及其性质 —— 公式详细推导
  • ElementUI2.x El-Select组件 处理使用远程查找时下拉箭头丢失问题
  • 用 CSS 实现太阳系运行效果