题目

https://leetcode.com/problems/valid-square/

题解

因为顺序未知,所以可能有四种组合情况。(check时,以四个点顺时针排列为待判断的正方形)

class Solution {public boolean validSquare(int[] p1, int[] p2, int[] p3, int[] p4) {return check(p1, p2, p3, p4) || check(p1, p2, p4, p3) ||check(p1, p3, p2, p4) || check(p1, p3, p4, p2);}public boolean check(int[] A, int[] B, int[] C, int[] D) {if (distance(A, B) != distance(C, D) || distance(A, B) != distance(B, C) ||distance(A, D) != distance(B, C)) return false;// AB⊥ADdouble kAB = slope(A, B);double kAD = slope(A, D);if (kAB == Integer.MAX_VALUE) return kAD == 0;if (kAD == Integer.MAX_VALUE) return kAB == 0;return kAB * kAD - (-1) < 0.0001;}public int distance(int[] A, int[] B) {return (int) (Math.pow(B[1] - A[1], 2) + Math.pow(B[0] - A[0], 2));}public double slope(int[] A, int[] B) {if (B[0] - A[0] == 0) return Integer.MAX_VALUE; // infelse return (double) (B[1] - A[1]) / (B[0] - A[0]);}
}

leetcode 593. Valid Square | 593. 有效的正方形(Java)相关推荐

  1. leetcode 221. Maximal Square | 221. 最大正方形(优化的暴力解法+动态规划解法)

    题目 https://leetcode.com/problems/maximal-square/ 题解 方法1:最暴力解 O((m*n)^2) public class Solution {publi ...

  2. 【To Do! 重点 正则表达式】LeetCode 65. Valid Number

    LeetCode 65. Valid Number 本博客转载自:[1]http://www.cnblogs.com/yuzhangcmu/p/4060348.html [2]https://blog ...

  3. 【回文串14】LeetCode 680. Valid Palindrome II

    LeetCode 680. Valid Palindrome II Solution1:我的答案 复杂度是O(n)O(n)O(n),不算好啊.. 注意:对于c++中string对象常用的insert( ...

  4. 【回文串3】LeetCode 125. Valid Palindrome

    LeetCode 125. Valid Palindrome Solution1:我的答案 复杂度为O(n)O(n)O(n),写法不是很简练啊. class Solution { public:boo ...

  5. LeetCode 36. Valid Sudoku

    LeetCode 36. Valid Sudoku Solution1:我的答案,比较笨.但是清晰易懂好上手啊~~~ class Solution { public:bool isValidSudok ...

  6. 定义一个名为Square的类表示正方形

    Java写一个Square类 (1)定义一个名为Square的类表示正方形,它有一个名为length的成员变量表示边长,一个带参数的构造方法,要求该类对象能够调用clone()方法进行克隆.覆盖父类的 ...

  7. [勇者闯LeetCode] 125. Valid Palindrome

    [勇者闯LeetCode] 125. Valid Palindrome Description Given a string, determine if it is a palindrome, con ...

  8. LeetCode 147. Insertion Sort List 链表插入排序 C++/Java

    LeetCode 147. Insertion Sort List 链表插入排序 C++/Java Sort a linked list using insertion sort. A graphic ...

  9. LeetCode 221. Maximal Square (最大正方形)

    原题 Given a 2D binary matrix filled with 0's and 1's, find the largest square containing only 1's and ...

最新文章

  1. php连接mysql页面空白_求大神: php注册页面跳转出现空白页
  2. Python找出序列中出现最多的元素
  3. java小程序连接数据库_Java程序连接各种数据库的方法
  4. http预请求options
  5. lock和wait+signal
  6. python正向切片_使Python切片正常(正/正向+无无+无负索引+在边界内)
  7. java cookie secure_Cookie的Secure属性
  8. mysql master status_show master status为空解决办法
  9. noip2016 蚯蚓
  10. 畅玩4x 刷linux,荣耀4x如何root
  11. Jeecg弱口令后台上传getShell渗透测试
  12. 格拉布斯准则的应用(Python)
  13. 金仓数据库 KingbaseES SQL 语言参考手册 (20. SQL语句: MERGE 到 VALUES)
  14. IBM服务器 不用引导盘安装方法详解
  15. 数字电路技术可能出现的简答题_学堂云卡通说解数字电子技术(自主模式)答案第一小节课后作业答案...
  16. 镂空针织衫 内搭外穿皆优雅
  17. 解决运行web项目问题:localhost: 8080 is already in use
  18. latexstudio编译报错问题:无法启动buildview:Xelatex:xelatex.exe -synctex=1 -interacion=nonstopmode
  19. ampak正基RF定频安装指导
  20. 小心Python爬取了你的微信隐私!用Python分析了数千个微信昵称后,发现了这些秘密!

热门文章

  1. 洛谷 - P4012 深海机器人问题(最大费用最大流)
  2. 鸿蒙系统发红包,鸿蒙修真录红包版
  3. 安卓进阶系列-05列表控件(RecyclerView)的使用
  4. python算法题-汉诺塔问题递归解法(python实现)
  5. 脚注交叉引用序号不一样_期末干货|蛋黄君的论文不秃头指南
  6. arduino自带程序_arduino代码运行时间测试函数,代码性能运行时间测试方法
  7. HDU4454(几何+三分)
  8. 关于landau函数
  9. 漫游Kafka实战篇之搭建Kafka运行环境
  10. Shell简介:什么是Shell,Shell命令的两种执行方式