📅  最后修改于: 2023-12-03 14:58:22.282000             🧑  作者: Mango
这道题是 GATE CS Mock 2018 的第 44 题。题目描述如下:
给定一个 n*n 的二维数组,其中每个元素都是正整数。你的任务是计算矩阵中所有独特数字的数量。
例如,如果矩阵是以下形状:
[[1, 2, 3],
[1, 3, 4],
[5, 6, 7]]
那么矩阵中所有独特数字的数量是 7(数字 1, 2, 3, 4, 5, 6, 7 都是独特的)。
你需要实现一个名为 count_unique()
的函数,该函数接受一个二维数组作为参数,返回矩阵中所有独特数字的数量。
题目要求计算矩阵中所有独特数字的数量,那么我们需要对矩阵中的每一个元素进行遍历,并将其存储起来,然后对存储的数字进行去重。
具体做法可以使用 Python 中的集合(set
)来实现。为了遍历二维数组中的每个元素,我们可以使用两个嵌套的 for
循环来实现。
下面是 count_unique()
函数的代码实现:
def count_unique(matrix):
unique_numbers = set()
for row in matrix:
for num in row:
unique_numbers.add(num)
return len(unique_numbers)
在这个函数中,我们首先创建了一个空的集合 unique_numbers
,然后使用两个嵌套的 for
循环遍历二维数组中的每个元素,并将其添加到集合中。
最后返回集合的长度即为矩阵中所有独特数字的数量。
这道题考查了对 Python 中集合的使用以及对二维数组的遍历实现。在实现这道题的过程中,我们需要注意使用 Python 中的集合实现去重操作,以及使用嵌套的 for
循环遍历二维数组中的每个元素。