593. Valid Square

网友投稿 665 2022-09-04

593. Valid Square

593. Valid Square

Given the coordinates of four points in 2D space, return whether the four points could construct a square.

The coordinate (x,y) of a point is represented by an integer array with two integers.

Example:

Input: p1 = [0,0], p2 = [1,1], p3 = [1,0], p4 = [0,1]Output: True

Note:

All the input integers are in the range [-10000, 10000]. A valid square has four equal sides with positive length and four equal angles (90-degree angles). Input points have no order.

class Solution { public boolean validSquare(int[] p1, int[] p2, int[] p3, int[] p4) { int[] a = helper(p1, p2, p3, p4); int[] b = helper(p2, p1, p3, p4); int[] c = helper(p3, p2, p1, p4); return check(a, b) && check(a, c); } private int[] helper(int[] p, int[] p1, int[] p2, int[] p3) { int[] re = new int[3]; re[0] = (p[0] - p1[0]) * (p[0] - p1[0]) + (p[1] - p1[1]) * (p[1] - p1[1]); re[1] = (p[0] - p2[0]) * (p[0] - p2[0]) + (p[1] - p2[1]) * (p[1] - p2[1]); re[2] = (p[0] - p3[0]) * (p[0] - p3[0]) + (p[1] - p3[1]) * (p[1] - p3[1]); Arrays.sort(re); return re; } private boolean check(int[] a, int[] b) { boolean flag = true; for (int i = 0; i < 3; ++i) { if (a[i] != b[i]) { flag = false; break; } } return flag && a[0] + a[1] == a[2] && a[0] == a[1] && a[2] != 0; } }

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:PHP-FPM和Nginx的通信机制(php与nginx如何通信)
下一篇:451. Sort Characters By Frequency
相关文章

 发表评论

暂时没有评论,来抢沙发吧~