nikunjsoni

447

Jun 22nd, 2021 (edited)
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.83 KB | None | 0 0
  1. class Solution {
  2. public:
  3.     int numberOfBoomerangs(vector<vector<int>>& points) {
  4.         int res = 0;
  5.         // iterate over all the points
  6.         for (int i = 0; i < points.size(); ++i) {
  7.             unordered_map<long, int> m;
  8.             // iterate over all points other than points[i]
  9.             for (int j = 0; j < points.size(); ++j) {
  10.                 if (j == i) continue;
  11.                 int dy = points[i][1] - points[j][1];
  12.                 int dx = points[i][0] - points[j][0];
  13.                 // compute squared euclidean distance from points[i]
  14.                 int dist = dy*dy+dx*dx;
  15.                 m[dist]++;
  16.             }
  17.             // Update answer
  18.             for(auto& p : m)
  19.                 if(p.second > 1)
  20.                     res += p.second * (p.second - 1);
  21.         }
  22.         return res;
  23.     }
  24. };
Add Comment
Please, Sign In to add comment