Clear Java Solution : just distance


  • 0
    G
        int dist(int[] p1, int[] p2) {
            int d1 = p1[0] - p2[0];
            int d2 = p1[1] - p2[1];
            
            return d1 * d1 + d2 * d2;
        }
        
        public boolean validSquare(int[] p1, int[] p2, int[] p3, int[] p4) {
            int d12 = dist(p1, p2);
            int d34 = dist(p3, p4);
            int d13 = dist(p1, p3);
            int d24 = dist(p2, p4);
            int d14 = dist(p1, p4);
            int d23 = dist(p2, p3);
            
            //it is a rectangular
            if (d12 == d34 && d13 == d24 && d14 == d23 && d12 != 0) {
                //Two sides equal => square
                return (d12 == d13) || (d12 == d14) || (d13 == d14);
            }
            
            return false;
        }
    

Log in to reply
 

Looks like your connection to LeetCode Discuss was lost, please wait while we try to reconnect.