题目链接
题目:给定在 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相关推荐

  1. 【leetcode】963. Minimum Area Rectangle II

    题目如下: Given a set of points in the xy-plane, determine the minimum area of any rectangle formed from ...

  2. C. Minimum Value Rectangle(基本不等式等式成立的条件)

    题目链接 C. Minimum Value Rectangle time limit per test2 seconds memory limit per test256 megabytes inpu ...

  3. 【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 ...

  4. cf----2019-10-03(Minimum Value Rectangle,Plasticine zebra,Weakened Common Divisor)

    城市黎明的灯火,总有光环在陨落,模仿者一个又一个,无人问津的角色,你选择去崇拜谁呢,怨恨谁呢? You have nn sticks of the given lengths. Your task i ...

  5. OpenCV 学习笔记03 boundingRect、minAreaRect、minEnclosingCircle、boxPoints、int0、circle、rectangle函数的用法...

    函数中的代码是部分代码,详细代码在最后 1 cv2.boundingRect 作用:矩形边框(boundingRect),用于计算图像一系列点的外部矩形边界. cv2.boundingRect(arr ...

  6. LeetCode 力扣算法题解汇总,All in One

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: https://fuxuemingzhu.cn 关键词:LeetCode,力扣,算法,题解,汇总,解析 把自己刷过的所有题目做一个整理, ...

  7. 国外基础几何算法答与问

    非常强大,很多好东西!!! From: orourke@cs.smith.edu (Joseph O'Rourke)Newsgroups: comp.graphics.algorithmsSubjec ...

  8. 刷题常用模板 by flytosky2015

    声明模板: #include <iostream> #include <cstdio> #include <cstdlib> #include <cmath& ...

  9. taoqick 搜索自己CSDN博客

    L1 L2正则化和优化器的weight_decay参数 kaiming初始化的推导 Pytorch动态计算图 Pytorch自动微分机制 PyTorch中在反向传播前为什么要手动将梯度清零? 通俗讲解 ...

最新文章

  1. HTTP/TCP/IP协议
  2. java基本类型是类吗_Java基本数据类型和引用类型(一)
  3. 中文版示例代码浏览器for Windows 8
  4. 爱立信数据分析解决方案抓住物联网发展机遇
  5. 《2001太空漫游》50周年:一部电影和一整个时代
  6. 基于flash AS3.0 的BASE64编码与解码类
  7. 数学之美 第二版 pdf
  8. 渗透测试神器Nmap使用教程
  9. 数字孪生技术协助信息物理系统构建数字化城市
  10. PhotoShop 橡皮擦工具组、渐变工具
  11. python中死循环有用吗_Python里是否存在死循环
  12. PLC温室大棚自动控制系统
  13. IDB数据桥提供方用oracle,WinCC与第三方系统数据交互IndustrialDataBridge(54页)-原创力文档...
  14. 0-1型整数规划—MATLAB数学建模
  15. 图解通信原理与案例分析-8:以太网通信案例及其物理层工作原理深入剖析--物理层编码
  16. 京东云与金山云合并!云计算行业真的要大洗牌吗?
  17. 【汤普森问题】正弦定理乱搞解法
  18. kafka代码初步涉猎,用代码发送消息到客户端
  19. 双馈异步风力发电机matlab,基于Matlab的双馈异步风力发电机风电场仿真
  20. 一文读懂拉曼、拉曼位移、激光光源、SERS

热门文章

  1. TSynDBDataSet内存表
  2. 使用MesaSQLite入库CSV文件
  3. LeetCode《编程能力入门》刷题笔记(34 题全)
  4. 【JavaScript 笔记】— 函数高级(变量作用域、解构赋值、方法、高阶函数、闭包、箭头函数、generator)
  5. 5mins看懂数据分析师必备的「波士顿模型」
  6. 不会python怎么了?靠敏捷BI和数据可视化,照样去阿里腾讯
  7. 4款最具影响力的自助式BI工具
  8. 如何利用FineBI做财务分析
  9. HTTP的请求报文响应报文
  10. python网络监控程序_python linux监控程序