LeetCode 939. 最小面积矩形(哈希)
文章目录
- 1. 题目
- 2. 解题
1. 题目
给定在 xy 平面上的一组点,确定由这些点组成的矩形的最小面积,其中矩形的边平行于 x 轴和 y 轴。
如果没有任何矩形,就返回 0。
示例 1:
输入:[[1,1],[1,3],[3,1],[3,3],[2,2]]
输出:4示例 2:
输入:[[1,1],[1,3],[3,1],[3,3],[4,1],[4,3]]
输出:2提示:
1 <= points.length <= 500
0 <= points[i][0] <= 40000
0 <= points[i][1] <= 40000
所有的点都是不同的。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-area-rectangle
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
- 枚举4个顶点是会超时的
- 枚举对角线组合,然后在哈希里检查另外两个顶点是否都存在
class Solution {public:int minAreaRect(vector<vector<int>>& points) {int i, j, area = INT_MAX, s;unordered_map<int, unordered_set<int>> m;for(auto& p : points)m[p[0]].insert(p[1]);for(i = 0; i < points.size(); ++i)for(j = i+1; j < points.size(); ++j){if(points[i][0]==points[j][0] || points[i][1]==points[j][1]|| !m[points[i][0]].count(points[j][1]) || !m[points[j][0]].count(points[i][1]))//i,j作为对角线,另外两点不存在continue;s = abs(points[i][0]-points[j][0])*abs(points[i][1]-points[j][1]);if(s < area)area = s;}return area==INT_MAX ? 0 : area;}
};
1316 ms 18.8 MB
- 根据题目的数据范围,哈希采用40001进制数,压缩为一个int,加快运行速度
class Solution {public:int minAreaRect(vector<vector<int>>& points) {int i, j, area = INT_MAX, s;unordered_set<int> m;for(auto& p : points)m.insert(p[0]*40001+p[1]);for(i = 0; i < points.size(); ++i)for(j = i+1; j < points.size(); ++j){if(points[i][0]==points[j][0] || points[i][1]==points[j][1]|| !m.count(points[i][0]*40001+points[j][1]) || !m.count(points[j][0]*40001+points[i][1]))//i,j作为对角线,另外两点不存在continue;s = abs(points[i][0]-points[j][0])*abs(points[i][1]-points[j][1]);if(s < area)area = s;}return area==INT_MAX ? 0 : area;}
};
832 ms 17.1 MB
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
LeetCode 939. 最小面积矩形(哈希)相关推荐
- leetcode最小面积_LeetCode—— 939. 最小面积矩形(JavaScript)
给定在 xy 平面上的一组点,确定由这些点组成的矩形的最小面积,其中矩形的边平行于 x 轴和 y 轴. 如果没有任何矩形,就返回 0. 示例 1: 输入:[[1,1],[1,3],[3,1],[3,3 ...
- LeetCode 963. 最小面积矩形 II
文章目录 1. 题目 2. 解题 1. 题目 给定在 xy 平面上的一组点,确定由这些点组成的任何矩形的最小面积,其中矩形的边不一定平行于 x 轴和 y 轴. 如果没有任何矩形,就返回 0. 示例 1 ...
- [Leetcode 963] 最小面积矩形 II
题意: 平面坐标系中一些点,找四个拼成面积在最小的矩形. 思路: 长方形判定定理:对角线相等,且互相平分的四边形是矩形. 首先平方枚举两个点所构成的所有线段. 对于这些线段把它们当做长方形的一条对角线 ...
- 939. 最小面积矩形
给定在 xy 平面上的一组点,确定由这些点组成的矩形的最小面积,其中矩形的边平行于 x 轴和 y 轴. 如果没有任何矩形,就返回 0. 示例 1: 输入:[[1,1],[1,3],[3,1],[3,3 ...
- Leetcode 963. 最小面积矩形 II 解题思路及C++实现
解题思路: 这道题目的难点在于如何判断一个矩形,网上也有很多方法. 对于给定的四个点,可以判断其四个顶点是否是直角,或者先求出中心点,矩形中每个点到中心点的距离是相等的. 下面给出的程序的逻辑是:暴力 ...
- leetcode最小面积_Code Review Swift 算法题: 最小面积矩形 Leetcode 的动人之处
题目描述: 939. 最小面积矩形 给定在 xy 平面上的一组点,确定由这些点组成的矩形的最小面积,其中矩形的边平行于 x 轴和 y 轴. 如果没有任何矩形,就返回 0. 示例 1: 输入:[[1,1 ...
- Leetcode 939:最小面积矩形(最详细的解法!!!)
给定在 xy 平面上的一组点,确定由这些点组成的矩形的最小面积,其中矩形的边平行于 x 轴和 y 轴. 如果没有任何矩形,就返回 0. 示例 1: 输入:[[1,1],[1,3],[3,1],[3,3 ...
- LeetCode 539. 最小时间差(哈希)
1. 题目 给定一个 24 小时制(小时:分钟)的时间列表,找出列表中任意两个时间的最小时间差并已分钟数表示. 示例 1: 输入: ["23:59","00:00&quo ...
- UVA10173(求凸包的面积最小外接矩形)
题目:10173 - Smallest Bounding Rectangle 求凸包的最小外接矩形的面积. 思路: 旋转卡壳 给定点集S,求S的最小覆盖矩形 最小覆盖矩形的四条边上,其中一条边有至少两 ...
最新文章
- apache2.2.25+mod_jk-apache-2.2.2.so+apache-tomcat-7.0.56集群
- 决策树Decision Tree
- Arduino可穿戴教程认识ArduinoIDE
- 盘点VS2015 预览版的5个新特性
- ios NSComparator 三种枚举类型
- Android从入门到进阶之高级控件
- jdk 1.8 字符串+_JDK 9/10/11:Java字符串上+ =的副作用
- 安排计算机网络技术专业去电子厂专业对口吗,计算机网络技术专业好点的学校有哪些?...
- crx文件里面的html文件,javascript – Chrome扩展程序:在crx文件中打开html,标签上没有图标...
- Java新职篇:声明一个变量
- 最小生成树(Prim算法+Kruskal算法)
- Ubuntu常用软件推荐,图文详细说明及下载
- PS放大图片而不模糊的操作方法
- LINE登录手机后怎样更换别个账号_2020年全国青少年禁毒知识竞赛在线答疑来了(附登录入口)...
- 水体浮游植物叶绿素a含量的测定
- A Survey on Deep Learning Techniques for Stereo-based Depth Estimation论文阅读
- python非线性可分支持向量机模型(实现iris分类)
- 唯品会密码JS解密与python登录!
- ConvE,知识图谱嵌入(KGE)论文复现(Ubuntu 20.04)
- 按关键字采集淘特商品列表API接口H5
热门文章
- 计算机基础的函数公式,大学计算机基础 excle 公式与函数
- 小android模拟器,小姚Android模拟器工作室版本v6.2.7.0正式版
- 三位数的茎叶图怎么看_贝德玛化妆品生产日期怎么看?贝德玛化妆品保质期怎么看?...
- 数据结构探险——线性表篇
- 《统计学习方法》(李航)读书笔记(转)
- 初识设计模式(装饰者模式)
- 代码实现:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。...
- LockSupport的park和unpark
- sql server :distinct 与order by 一起使用要注意
- 如何将两个DateTimePicker的日期和时间组合成一个值