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)`.