Detect Squares

Problem

Design a data structure that can add points on a 2D plane (duplicates allowed) and, given a query point, count the number of axis-aligned squares that can be formed with the query as one corner and three previously added points as the others.

Examples

Example 1
Input:add([3,10]); add([11,2]); add([3,2]); count([11,10])
Output:1

Constraints

  • Coordinates are in the range [0, 1000].
  • At most 3000 calls total.

Solve it in the editor. Sign in free to run your Python or JavaScript against test cases, get a verdict, and track your attempts.

Solve on FeatCode →

How to approach it: the Math & Geometry pattern

A grab-bag of problems solved with numeric or coordinate reasoning rather than a specific data structure — matrix manipulation, simulation, and basic number theory.

Look for this pattern when

  • The problem operates on a 2-D grid or matrix directly (rotate, transpose, traverse in a pattern).
  • There's no obvious "textbook" data structure — the problem is really about careful step-by-step simulation.

Read the full Math & Geometry guide →

Video walkthroughs

Original problem on LeetCode ↗

More Math & Geometry problems