File tree Expand file tree Collapse file tree 1 file changed +29
-0
lines changed Expand file tree Collapse file tree 1 file changed +29
-0
lines changed Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ public int largestOverlap (int [][] img1 , int [][] img2 ) {
3
+ List <Pair <Integer , Integer >> nonZeroCoordinates1 = getNonZeroCoordinates (img1 );
4
+ List <Pair <Integer , Integer >> nonZeroCoordinates2 = getNonZeroCoordinates (img2 );
5
+ int maxOverlap = 0 ;
6
+ Map <Pair <Integer , Integer >, Integer > groupCount = new HashMap <>();
7
+ for (Pair <Integer , Integer > c1 : nonZeroCoordinates1 ) {
8
+ for (Pair <Integer , Integer > c2 : nonZeroCoordinates2 ) {
9
+ Pair <Integer , Integer > vector = new Pair <Integer , Integer >(
10
+ c2 .getKey () - c1 .getKey (), c2 .getValue () - c1 .getValue ());
11
+ groupCount .put (vector , groupCount .getOrDefault (vector , 0 ) + 1 );
12
+ maxOverlap = Math .max (maxOverlap , groupCount .get (vector ));
13
+ }
14
+ }
15
+ return maxOverlap ;
16
+ }
17
+
18
+ private List <Pair <Integer , Integer >> getNonZeroCoordinates (int [][] arr ) {
19
+ List <Pair <Integer , Integer >> coordinates = new ArrayList <>();
20
+ for (int i = 0 ; i < arr .length ; i ++) {
21
+ for (int j = 0 ; j < arr [0 ].length ; j ++) {
22
+ if (arr [i ][j ] == 1 ) {
23
+ coordinates .add (new Pair (i , j ));
24
+ }
25
+ }
26
+ }
27
+ return coordinates ;
28
+ }
29
+ }
You can’t perform that action at this time.
0 commit comments