File tree 1 file changed +37
-0
lines changed
1 file changed +37
-0
lines changed Original file line number Diff line number Diff line change
1
+ import java .util .HashMap ;
2
+ import java .util .Map ;
3
+
4
+ public class NumberOfBoomerangs {
5
+ public int numberOfBoomerangs (int [][] points ) {
6
+ if (points .length == 0 ) {
7
+ return 0 ;
8
+ }
9
+
10
+ int boomerangs = 0 ;
11
+ Map <Integer , Integer > distances = new HashMap <>();
12
+
13
+ for (int i = 0 ; i < points .length ; i ++) {
14
+ for (int j = 0 ; j < points .length ; j ++) {
15
+ if (i == j ) {
16
+ continue ;
17
+ }
18
+
19
+ int distance = getDistance (points [i ], points [j ]);
20
+ distances .put (distance , distances .getOrDefault (distance , 0 ) + 1 );
21
+ }
22
+
23
+ for (int frequency : distances .values ()) {
24
+ boomerangs += frequency * (frequency - 1 );
25
+ }
26
+ distances .clear ();
27
+ }
28
+
29
+ return boomerangs ;
30
+ }
31
+
32
+ private int getDistance (int [] point1 , int [] point2 ) {
33
+ int x_diff = point1 [0 ] - point2 [0 ];
34
+ int y_diff = point1 [1 ] - point2 [1 ];
35
+ return x_diff * x_diff + y_diff * y_diff ;
36
+ }
37
+ }
You can’t perform that action at this time.
0 commit comments