一次遍历整个矩阵,一一对比是否符合条件。
学习到的知识:
row表示数据表中的一行数据,它是一个列表或元组,其中存储了表的每一列的值。
enumerate() 函数:enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。例,
>>> seq = ['one', 'two', 'three']
>>> for i, element in enumerate(seq):
... print i, element
...
0 one
1 two
2 three
题目
给你一个大小为 m x n
的二维矩阵 grid
。你需要判断每一个格子 grid[i][j]
是否满足:
- 如果它下面的格子存在,那么它需要等于它下面的格子,也就是
grid[i][j] == grid[i + 1][j]
。 - 如果它右边的格子存在,那么它需要不等于它右边的格子,也就是
grid[i][j] != grid[i][j + 1]
。
如果 所有 格子都满足以上条件,那么返回 true
,否则返回 false
。
示例 1:
输入:grid = [[1,0,2],[1,0,2]]
输出:true
解释:
网格图中所有格子都符合条件
代码实现:
class Solution:
def satisfiesConditions(self, grid: List[List[int]]) -> bool:
# 遍历 grid 的每一行
for i in range(len(grid)):
# 检查当前行的相邻元素是否相等
for j in range(len(grid[i]) - 1): # 遍历当前行的相邻元素
if grid[i][j] == grid[i][j + 1]:
return False # 如果有相邻元素相同,则返回 False
# 检查当前行与下一行是否相等
if i < len(grid) - 1: # 确保不超出边界
if grid[i] != grid[i + 1]:
return False # 如果有两行不相等,则返回 False
return True # 所有条件都满足,返回 True