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

LeetCode 75 - 01 : 最小面积矩形

请添加图片描述

type pair struct{x, y int
}func minAreaRect(points [][]int)int{mp := map[pair]struct{}{}// 将二维数组中的坐标映射到map中for i := range points{mp[pair{points[i][0], points[i][1]}] = struct{}{}}// 将结果设置为一个最大值,防止影响求最小值的逻辑res := math.MaxInt64for i := range points{for j := i + 1; j < len(points); j++{if points[i][0] == points[j][0] || points[i][1] == points[j][1]{continue}_, a := mp[pair{points[i][0], points[j][1]}]_, b := mp[pair{points[j][0], points[j][1]}]if a && b {area := getArea(points[i], points[j])if area < res{res = area}}}}if res == math.MaxInt64{return 0}return res
}func getArea(p1, p2 []int) int{x := p1[0] - p2[0]if x < 0 {x *= -1}y := p1[1] - p2[1]if y < 0{y *= -1}return x * y
}

总结:

解题思路:一个矩形可以通过一条对角线也就是两个点唯一确认。那么可以先将所有的点加入哈希表,然后枚举两个点,如果这两个点x坐标和y坐标都不一致就可以构成一条对角线。最后判断由这条对角线确定的矩形的另外两个点是否在哈希表中,如果存在就是一个合法的矩形并更新最小面积。
要点

将结果设置为一个最大值,防止影响求最小值的逻辑

 res := math.MaxInt64

将二维数组中的坐标映射到map中

for i := range points{mp[pair{points[i][0], points[i][1]}] = struct{}{}}
http://www.lryc.cn/news/171837.html

相关文章:

  • 每日一题:请解释什么是闭包(Closure)?并举一个实际的例子来说明。(前端初级)
  • 广告主必看!NetMarvel五大优势驱动出海App投放增长
  • 数据结构与算法之复杂度
  • ATECLOUD电源测试软件平台如何测试电源纹波?
  • 数据结构与算法:排序算法(2)
  • 1_图神经网络GNN基础知识学习
  • 瑞芯微:基于RK3568的ocr识别
  • C++真的是 C加加
  • java学习--day5 (java中的方法、break/continue关键字)
  • MFC主框架和视类PreCreateWindow()函数学习
  • for forin forof forEach map区别
  • 特殊时间(蓝桥杯)
  • VUE路由与nodeJS环境搭建
  • 抗锯齿的线
  • 如何使用高压放大器驱动高容性负载
  • kubernetes集群证书过期启动失败问题解决方法
  • nvm使用的注意事项和常用命令。
  • 代码大全阅读随笔(七)
  • 用户与权限管理
  • mysql集群使用nginx配置负载均衡
  • 蓝桥杯每日一题2023.9.21
  • 知识联合——函数指针数组
  • 【Nginx26】Nginx学习:日志与镜像流量复制
  • Stability AI发布基于稳定扩散的音频生成模型Stable Audio
  • 华为OD机试 - 计算面积 - 逻辑分析(Java 2023 B卷 100分)
  • Ganache本地测试网+cpolar内网穿透实现公网访问内网
  • 【每日一题】ARC071D - ### | 前缀和 | 简单
  • (Vue2)VueRouter
  • 6.文本注释方法
  • [Linux打怪升级之路]-缓冲区