21. Surround the 1's
Last updated
Was this helpful?
Last updated
Was this helpful?
The problem can be found at the following link:
This is a simple brute force approach, where it iterates through each cell, and check its surrounding eight cells, and increments a counter if the count of zeros in the surroundings is divisible by 2. Steps for implementing this solution.
Initialize arrays dx
and dy
to represent the possible directions: (-1, 0), (1, 0), (0, -1), (0, 1), (-1, -1), (-1, 1), (1, -1), and (1, 1).
Define a function isValid
to check if a given position is within the boundaries of the matrix.
Iterate through each cell in the matrix.
If the cell value is 1, calculate the count c
of adjacent 0's.
If c
is non-zero and even, increment the cnt
variable.
Return the cnt
variable as the result.
Consider the following matrix:
Cell (0, 1) has three neighboring 0's.
Cell (1, 1) has five neighboring 0's.
Cell (1, 2) has four neighboring 0's.
Cell (1, 4) has four neighboring 0's.
Cell (2, 2) has five neighboring 0's.
Cell (2, 3) has five neighboring 0.
Since the counts are even for (1, 2), and (1, 4) we increment cnt
by 2.
Time Complexity: The code iterates through each cell once and checks its neighboring cells, resulting in O(n * m)
, where n
is the number of rows and m
is the number of columns in the matrix.
Auxiliary Space Complexity: The code uses a constant amount of extra space for the dx
and dy
arrays, as well as a few integer variables. Hence, the auxiliary space complexity is O(1)
.
For discussions, questions, or doubts related to this solution, please visit our . We welcome your input and aim to foster a collaborative learning environment.
If you find this solution helpful, consider supporting us by giving a ⭐ star to the repository.