Easy
You are given a 2D matrix grid
of size m x n
. You need to check if each cell grid[i][j]
is:
grid[i][j] == grid[i + 1][j]
(if it exists).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
public class Solution {
public boolean satisfiesConditions(int[][] grid) {
int m = grid.length;
int n = grid[0].length;
for (int i = 0; i < m - 1; i++) {
if (n > 1) {
for (int j = 0; j < n - 1; j++) {
if ((grid[i][j] != grid[i + 1][j]) || (grid[i][j] == grid[i][j + 1])) {
return false;
}
}
} else {
if (grid[i][0] != grid[i + 1][0]) {
return false;
}
}
}
for (int j = 0; j < n - 1; j++) {
if (grid[m - 1][j] == grid[m - 1][j + 1]) {
return false;
}
}
return true;
}
}