以下是一个解决方案的代码示例:
def find_duplicate_rows(matrix):
max_column = 0
for row in matrix:
max_column = max(max_column, len(row))
duplicates = []
seen = set()
for row in matrix:
key = tuple(row + [None] * (max_column - len(row))) # 补充长度不足的行
if key in seen:
duplicates.append(row)
else:
seen.add(key)
return duplicates
# 示例用法
matrix = [
[1, 2, 3],
[4, 5, 6],
[1, 2, 3],
[7, 8, 9],
[4, 5, 6]
]
duplicates = find_duplicate_rows(matrix)
print(duplicates)
输出:
[[1, 2, 3], [4, 5, 6]]
这个解决方案中,首先找到矩阵中最大的列数max_column。然后使用一个set来保存已经出现过的行,利用元组来作为set的key。为了确保所有行的长度一致,我们通过在行末尾补充None来填充长度不足的行。之后,遍历矩阵中的每一行,检查该行是否已经在set中出现过,如果是,则将该行添加到duplicates列表中,否则将该行添加到set中。最后返回duplicates列表即可。