leetcode963. Minimum Area Rectangle II
题目链接
题目:给定在 xy 平面上的一组点,确定由这些点组成的任何矩形的最小面积,其中矩形的边不一定平行于 x 轴和 y 轴。
如果没有任何矩形,就返回 0。
示例1:
输入:[[1,2],[2,1],[1,0],[0,1]]
输出:2.00000
解释:最小面积的矩形出现在 [1,2],[2,1],[1,0],[0,1] 处,面积为 2。
示例2:
输入:[[0,1],[2,1],[1,1],[1,0],[2,0]]
输出:1.00000
解释:最小面积的矩形出现在 [1,0],[1,1],[2,1],[2,0] 处,面积为 1。
示例3:
输入:[[0,3],[1,2],[3,1],[1,3],[2,1]]
输出:0
解释:没法从这些点中组成任何矩形。
参考:https://leetcode.com/problems/minimum-area-rectangle-ii/discuss/208470/Java-O(N3)-bruteforce
思路: 先找到前三个点,再找到第四个点,然后计算面积 很暴力,很直接,但是效果还可以
class Solution {public double minAreaFreeRect(int[][] points) {Set<String> set = new HashSet<>();double result = Double.MAX_VALUE;// 构造点集for(int[] p : points){set.add(p[0] + " " + p[1]);}//通过第三个点求第四个点for(int[] p1 : points){for(int[] p2 : points){if(p1[0] == p2[0] && p1[1] == p2[1]){continue;}for(int[] p3 : points){//勾股定理if(dist(p1, p3) + dist(p2, p3) != dist(p1, p2)){continue;}//第四个点的坐标int x = p1[0] + p2[0] - p3[0];int y = p1[1] + p2[1] - p3[1];//第四个点是否在点集中存在if(!set.contains(x + " " + y)){continue;}double area = Math.sqrt(dist(p1, p3)) * Math.sqrt(dist(p2, p3));if(area == 0){continue;}result = Math.min(result, area);}}}return result == Double.MAX_VALUE ? 0 : result;}public double dist(int[] x1, int[] x2){return (x1[0] - x2[0]) * (x1[0] - x2[0]) + (x1[1] - x2[1]) * (x1[1] - x2[1]);}
}
leetcode963. Minimum Area Rectangle II相关推荐
- 【leetcode】963. Minimum Area Rectangle II
题目如下: Given a set of points in the xy-plane, determine the minimum area of any rectangle formed from ...
- C. Minimum Value Rectangle(基本不等式等式成立的条件)
题目链接 C. Minimum Value Rectangle time limit per test2 seconds memory limit per test256 megabytes inpu ...
- 【CodeForces - 1027C】Minimum Value Rectangle (数学,公式化简,思维,卡常卡memset)
题干: You have nn sticks of the given lengths. Your task is to choose exactly four of them in such a w ...
- cf----2019-10-03(Minimum Value Rectangle,Plasticine zebra,Weakened Common Divisor)
城市黎明的灯火,总有光环在陨落,模仿者一个又一个,无人问津的角色,你选择去崇拜谁呢,怨恨谁呢? You have nn sticks of the given lengths. Your task i ...
- OpenCV 学习笔记03 boundingRect、minAreaRect、minEnclosingCircle、boxPoints、int0、circle、rectangle函数的用法...
函数中的代码是部分代码,详细代码在最后 1 cv2.boundingRect 作用:矩形边框(boundingRect),用于计算图像一系列点的外部矩形边界. cv2.boundingRect(arr ...
- LeetCode 力扣算法题解汇总,All in One
作者: 负雪明烛 id: fuxuemingzhu 个人博客: https://fuxuemingzhu.cn 关键词:LeetCode,力扣,算法,题解,汇总,解析 把自己刷过的所有题目做一个整理, ...
- 国外基础几何算法答与问
非常强大,很多好东西!!! From: orourke@cs.smith.edu (Joseph O'Rourke)Newsgroups: comp.graphics.algorithmsSubjec ...
- 刷题常用模板 by flytosky2015
声明模板: #include <iostream> #include <cstdio> #include <cstdlib> #include <cmath& ...
- taoqick 搜索自己CSDN博客
L1 L2正则化和优化器的weight_decay参数 kaiming初始化的推导 Pytorch动态计算图 Pytorch自动微分机制 PyTorch中在反向传播前为什么要手动将梯度清零? 通俗讲解 ...
最新文章
- HTTP/TCP/IP协议
- java基本类型是类吗_Java基本数据类型和引用类型(一)
- 中文版示例代码浏览器for Windows 8
- 爱立信数据分析解决方案抓住物联网发展机遇
- 《2001太空漫游》50周年:一部电影和一整个时代
- 基于flash AS3.0 的BASE64编码与解码类
- 数学之美 第二版 pdf
- 渗透测试神器Nmap使用教程
- 数字孪生技术协助信息物理系统构建数字化城市
- PhotoShop 橡皮擦工具组、渐变工具
- python中死循环有用吗_Python里是否存在死循环
- PLC温室大棚自动控制系统
- IDB数据桥提供方用oracle,WinCC与第三方系统数据交互IndustrialDataBridge(54页)-原创力文档...
- 0-1型整数规划—MATLAB数学建模
- 图解通信原理与案例分析-8:以太网通信案例及其物理层工作原理深入剖析--物理层编码
- 京东云与金山云合并!云计算行业真的要大洗牌吗?
- 【汤普森问题】正弦定理乱搞解法
- kafka代码初步涉猎,用代码发送消息到客户端
- 双馈异步风力发电机matlab,基于Matlab的双馈异步风力发电机风电场仿真
- 一文读懂拉曼、拉曼位移、激光光源、SERS