Valid Square Medium 0 attempts
LeetCode ↗

Valid Square

Medium MatrixBFSDFS LeetCode

Given four points, determine if they form a valid square (4 equal sides, 4 right angles).

Example: p1=[0,0], p2=[1,1], p3=[1,0], p4=[0,1] → true

Sample Input
Sample Output
Constraints
  • Coordinates are integers in range [-10^4, 10^4]
Test Cases
Case 1
Args: [[0,0],[1,1],[1,0],[0,1]] Expected: true
Topics

Distance Check

A valid square has 4 equal sides and 2 equal diagonals.

function validSquare(p1, p2, p3, p4) {
  function dist(a, b) { return (a[0]-b[0])**2 + (a[1]-b[1])**2; }
  const dists = [dist(p1,p2),dist(p1,p3),dist(p1,p4),dist(p2,p3),dist(p2,p4),dist(p3,p4)].sort((a,b)=>a-b);
  return dists[0] > 0 && dists[0]===dists[1] && dists[1]===dists[2] && dists[2]===dists[3] && dists[4]===dists[5];
}

Time: O(1) | Space: O(1)

Saved in this browser only. Private to you.

JavaScript