Leetcode 593.???????????????

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode 593.???????????????相关的知识,希望对你有一定的参考价值。

???????????????   ????????????   [1]   boolean   black   ??????   ??????   ??????   png   

???????????????

???????????????????????????????????????????????????????????????????????????????????????

?????????????????????x???y???????????????????????????????????????????????????

??????:

??????: p1 = [0,0], p2 = [1,1], p3 = [1,0], p4 = [0,1]

??????: True

   

??????:

  1. ???????????????????????? [-10000???10000] ????????????
  2. ??????????????????????????????????????????????????????????????????90????????????
  3. ????????????????????????

 

????????????

 

 1 public class Solution {
 2     public double dist(int[] p1, int[] p2) {
 3         return (p2[1] - p1[1]) * (p2[1] - p1[1]) + (p2[0] - p1[0]) * (p2[0] - p1[0]);
 4     }
 5     public boolean check(int[] p1, int[] p2, int[] p3, int[] p4) {
 6         return dist(p1,p2) > 0 && dist(p1, p2) == dist(p2, p3) && dist(p2, p3) == dist(p3, p4) && dist(p3, p4) == dist(p4, p1) && dist(p1, p3) == dist(p2, p4);
 7     }
 8     public boolean validSquare(int[] p1, int[] p2, int[] p3, int[] p4) {
 9         int[][] p = {p1,p2,p3,p4};
10         return checkAllPermutations(p, 0);
11     }
12     boolean checkAllPermutations(int[][] p, int l) {
13         if (l == 4) {
14             return check(p[0], p[1], p[2], p[3]);
15         } else {
16             boolean res = false;
17             for (int i = l; i < 4; i++) {
18                 swap(p, l, i);
19                 res |= checkAllPermutations(p, l + 1);
20                 swap(p, l, i);
21             }
22             return res;
23         }
24     }
25     public void swap(int[][] p, int x, int y) {
26         int[] temp = p[x];
27         p[x] = p[y];
28         p[y] = temp;
29     }
30 }

 

 

 

以上是关于Leetcode 593.???????????????的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode 593: Valid Square

leetcode No593. Valid Square

leetcode No593. Valid Square

C#刷遍Leetcode面试题系列连载:No.593 - 有效的正方形

LeetCode 593 有效的正方形[数学] HERODING的LeetCode之路

LeetCode 0593. 有效的正方形