-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSolution593.cs
31 lines (29 loc) · 1.02 KB
/
Solution593.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
namespace LeetCode.Solutions;
public class Solution593
{
/// <summary>
/// 593. Valid Square - Medium
/// <a href="https://leetcode.com/problems/valid-square">See the problem</a>
/// </summary>
public bool ValidSquare(int[] p1, int[] p2, int[] p3, int[] p4)
{
var points = new[] { p1, p2, p3, p4 };
Array.Sort(points, (a, b) =>
{
if (a[0] == b[0])
{
return a[1] - b[1];
}
return a[0] - b[0];
});
return Distance(points[0], points[1]) > 0
&& Distance(points[0], points[1]) == Distance(points[1], points[3])
&& Distance(points[1], points[3]) == Distance(points[3], points[2])
&& Distance(points[3], points[2]) == Distance(points[2], points[0])
&& Distance(points[0], points[3]) == Distance(points[1], points[2]);
}
private int Distance(int[] p1, int[] p2)
{
return (p1[0] - p2[0]) * (p1[0] - p2[0]) + (p1[1] - p2[1]) * (p1[1] - p2[1]);
}
}