You are given two images, img1 and img2, represented as binary, square matrices of size n x n. A binary matrix has only 0s and 1s as values.
We translate one image however we choose by sliding all the 1 bits left, right, up, and/or down any number of units. We then place it on top of the other image. We can then calculate the overlap by counting the number of positions that have a 1 in both images.
Note also that a translation does not include any kind of rotation. Any 1 bits that are translated outside of the matrix borders are erased.
Return the largest possible overlap.
- Time : O(n^2 * logn)
- Space : O(n)
c++
1 | class Solution { |
- Time : O(n^2)
- Space : O(1 bit of img1 + 1 bit of img2)
c++
1 | class Solution { |