Number of Boomerangs

MediumArrays & Hashinghashing

Solve this the way you would in the interview: out loud, on a timer, with an AI interviewer asking follow-ups while you code. You get a scored report at the end.

Practice this as a mock interviewFree to start, no account needed

Problem

You are given n distinct points on a plane, points[i] = [x, y]. A **boomerang** is an ordered triple of points (i, j, k) such that the distance from i to j equals the distance from i to k. Order matters, so (i, j, k) and (i, k, j) are two different boomerangs; i, j, k must be three different points. Return the number of boomerangs. An O(n^2) solution is expected.

Examples

Input: points = [[0,0],[1,0],[2,0]]
Output: 2
With `[1,0]` as the middle point: `([1,0],[0,0],[2,0])` and `([1,0],[2,0],[0,0])`.
Input: points = [[1,1],[2,2],[3,3]]
Output: 2
Again only the middle point `[2,2]` is equidistant from the other two, in two orders.
Input: points = [[1,1]]
Output: 0
A single point cannot form a triple.

Constraints

  • 1 <= n <= 500
  • -10^4 <= x, y <= 10^4
  • All points are distinct

What the interviewer grades

A correct solution is one of five scores. The report also grades problem understanding (did you clarify inputs and edge cases before coding), problem solving, communication while you work, code quality, and testing. See a sample report, or read up on the pattern in the lessons.

More hashing problems