Advertisement
1988coder

447. Number of Boomerangs

Dec 13th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.06 KB | None | 0 0
  1. /*
  2. Time Complexity: O(N^2)
  3. Space Complexity :O(N)
  4.  
  5. N = Number of points.
  6. */
  7. class Solution {
  8.     public int numberOfBoomerangs(int[][] points) {
  9.         if (points == null || points.length < 3 || points[0].length != 2) {
  10.             return 0;
  11.         }
  12.        
  13.         HashMap<Integer, Integer> map = new HashMap();
  14.         int result = 0;
  15.        
  16.         for (int i = 0; i < points.length; i++) {
  17.             for (int j = 0; j < points.length; j++) {
  18.                 if (i == j) {
  19.                     continue;
  20.                 }
  21.                
  22.                 int dist = getDistance(points[i], points[j]);
  23.                 map.put(dist, map.getOrDefault(dist, 0) + 1);
  24.             }
  25.            
  26.             for (int val : map.values()) {
  27.                 result += val * (val - 1);
  28.             }
  29.            
  30.             map.clear();
  31.         }
  32.        
  33.         return result;
  34.     }
  35.    
  36.     private int getDistance(int[] A, int[] B) {
  37.         int dx = A[0] - B[0];
  38.         int dy = A[1] - B[1];
  39.        
  40.         return dx*dx + dy*dy;
  41.     }
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement