You are given a 2D matrix grid of size m x n. You need to check if each cell grid[i][j] is:
Equal to the cell below it, i.e. grid[i][j] == grid[i + 1][j] (if it exists).
Different from the cell to its right, i.e. grid[i][j] != grid[i][j + 1] (if it exists).
Return true if all the cells satisfy these conditions, otherwise, return false.
Example 1:
Input:grid = [[1,0,2],[1,0,2]]
Output:true
Explanation:
All the cells in the grid satisfy the conditions.
Example 2:
Input:grid = [[1,1,1],[0,0,0]]
Output:false
Explanation:
All cells in the first row are equal.
Example 3:
Input:grid = [[1],[2],[3]]
Output:false
Explanation:
Cells in the first column have different values.
Constraints:
1 <= n, m <= 10
0 <= grid[i][j] <= 9
Solutions
Solution 1: Simulation
We can iterate through each cell and determine whether it meets the conditions specified in the problem. If there is a cell that does not meet the conditions, we return false, otherwise, we return true.
The time complexity is $O(m \times n)$, where $m$ and $n$ are the number of rows and columns of the matrix grid respectively. The space complexity is $O(1)`.