Given n points in the plane that are all pairwise distinct, a "boomerang" is a tuple of points (i, j, k)
such that the distance between i
and j
equals the distance between i
and k
(the order of the tuple matters).
Find the number of boomerangs. You may assume that n will be at most 500 and coordinates of points are all in the range [-10000, 10000] (inclusive).
Example:
class Solution {public: int numberOfBoomerangs(vector>& points) { if(points.size()<3) return 0; int ret=0; for(int i=0;i hashmap; for(int j=0;j second>=2) ret += it->second*(it->second-1); } } return ret; } int distance(pair &a,pair &b) { int x=(a.first-b.first)*(a.first-b.first); int y=(a.second-b.second)*(a.second-b.second); return x+y; }};
Input:[[0,0],[1,0],[2,0]]Output:2Explanation:The two boomerangs are [[1,0],[0,0],[2,0]] and [[1,0],[2,0],[0,0]]