欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > java >内容正文

java

leetcode 593. Valid Square | 593. 有效的正方形(Java)

发布时间:2024/2/28 java 45 豆豆
生活随笔 收集整理的这篇文章主要介绍了 leetcode 593. Valid Square | 593. 有效的正方形(Java) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

题目

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)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。