📜  门| GATE CS Mock 2018 |第 44 题(1)

📅  最后修改于: 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 循环遍历二维数组中的每个元素。