要从一个NxN矩阵中删除和最小的行,我们需要遵循以下步骤:
def remove_min_sum_row(matrix):
if not matrix or not matrix[0]:
return matrix # 如果矩阵为空或没有列,直接返回原矩阵
# 计算每一行的和
row_sums = [sum(row) for row in matrix]
# 找到最小行和的索引
min_sum_index = row_sums.index(min(row_sums))
# 删除该行
del matrix[min_sum_index]
return matrix
# 示例矩阵
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
# 删除和最小的行
result = remove_min_sum_row(matrix)
print(result) # 输出: [[4, 5, 6], [7, 8, 9]]
def remove_all_min_sum_rows(matrix):
if not matrix or not matrix[0]:
return matrix
row_sums = [sum(row) for row in matrix]
min_sum = min(row_sums)
# 找到所有最小行和的索引
min_sum_indices = [i for i, sum_ in enumerate(row_sums) if sum_ == min_sum]
# 按照索引逆序删除行,避免索引错位
for index in sorted(min_sum_indices, reverse=True):
del matrix[index]
return matrix
# 示例矩阵
matrix = [
[1, 2, 3],
[4, 5, 6],
[1, 2, 3]
]
# 删除所有和最小的行
result = remove_all_min_sum_rows(matrix)
print(result) # 输出: [[4, 5, 6]]
通过上述方法,我们可以有效地从NxN矩阵中删除和最小的行,并且能够处理特殊情况,如多行和相同的情况。
领取专属 10元无门槛券
手把手带您无忧上云