Learn
Practice
Interview
Resources
Newsletter
F
Toggle theme
0
F
0
Toggle menu
Animations
← Back to All Animations
Valid Square
Bookmark
Input
Valid square
Rotated valid square
Not a square
All same point
Custom
p1
=
[0, 0]
,
p2
=
[1, 0]
,
p3
=
[1, 1]
,
p4
=
[0, 1]
p1
p2
p3
p4
6 squared distances
p1–p2
·
p1–p3
·
p1–p4
·
p2–p3
·
p2–p4
·
p3–p4
·
a square = 4 equal sides + 2 equal diagonals (diag² = 2·side²)
p1
p2
p3
p4
6 squared distances
p1–p2
·
p1–p3
·
p1–p4
·
p2–p3
·
p2–p4
·
p3–p4
·
a square = 4 equal sides + 2 equal diagonals (diag² = 2·side²)
p1
p2
p3
p4
6 squared distances
p1–p2
1
p1–p3
·
p1–p4
·
p2–p3
·
p2–p4
·
p3–p4
·
dist²(p1, p2) = (0−1)² + (0−0)² =
1
p1
p2
p3
p4
6 squared distances
p1–p2
1
p1–p3
2
p1–p4
·
p2–p3
·
p2–p4
·
p3–p4
·
dist²(p1, p3) = (0−1)² + (0−1)² =
2
p1
p2
p3
p4
6 squared distances
p1–p2
1
p1–p3
2
p1–p4
1
p2–p3
·
p2–p4
·
p3–p4
·
dist²(p1, p4) = (0−0)² + (0−1)² =
1
p1
p2
p3
p4
6 squared distances
p1–p2
1
p1–p3
2
p1–p4
1
p2–p3
1
p2–p4
·
p3–p4
·
dist²(p2, p3) = (1−1)² + (0−1)² =
1
p1
p2
p3
p4
6 squared distances
p1–p2
1
p1–p3
2
p1–p4
1
p2–p3
1
p2–p4
2
p3–p4
1
dist²(p3, p4) = (1−0)² + (1−1)² =
1
p1
p2
p3
p4
6 squared distances
p1–p2
1
p1–p3
2
p1–p4
1
p2–p3
1
p2–p4
2
p3–p4
1
distinct squared distances:
2
(1×4, 2×2)
p1
p2
p3
p4
6 squared distances
p1–p2
1
p1–p3
2
p1–p4
1
p2–p3
1
p2–p4
2
p3–p4
1
■ side² 1 ×4
▨ diag² 2 ×2
side² =
1
(×4), diag² =
2
(×2)
p1
p2
p3
p4
6 squared distances
p1–p2
1
p1–p3
2
p1–p4
1
p2–p3
1
p2–p4
2
p3–p4
1
■ side² 1 ×4
▨ diag² 2 ×2
4 sides ✓, 2 diagonals ✓, 2 = 2·1 ✓ →
valid square
p1
p2
p3
p4
6 squared distances
p1–p2
1
p1–p3
2
p1–p4
1
p2–p3
1
p2–p4
2
p3–p4
1
■ side² 1 ×4
▨ diag² 2 ×2
valid square
4 sides ✓, 2 diagonals ✓, 2 = 2·1 ✓ →
valid square
algo
master
.
io
Step:
Do these 4 points form a square?
0 / 10
Input
Valid square
Rotated valid square
Not a square
All same point
Custom
p1
=
[0, 0]
,
p2
=
[1, 0]
,
p3
=
[1, 1]
,
p4
=
[0, 1]
0 / 10
algo
master
.
io
Step:
Do these 4 points form a square?