【问题标题】:How to check if a number repeated in multidimension array?如何检查一个数字是否在多维数组中重复?
【发布时间】:2020-12-31 04:53:15
【问题描述】:

我需要一个函数来检查一个数字是否在一个大学项目的 3x3 多维数组中重复。

【问题讨论】:

  • 您能否展示您已经编写的程序,并解释您的程序究竟是如何不工作或没有产生预期的结果?你必须先展示你的作品;它必须满足minimal reproducible example 的所有要求;在通过 stackoverflow.com 寻求帮助之前,它必须是真诚的真正尝试来实现您的程序,而不是几行象征性的代码。 stackoverflow.com 是一个问答网站但我们不为其他人编写代码,这里。有关更多信息,请参阅How to Ask 问题、获取tour 并阅读help center

标签: c++ multidimensional-array


【解决方案1】:

矩阵是二维数组的花哨词,二维数组是数组的花哨词(只是更长)。天真的方法是扫描每个值的数组,然后查看其中是否有重复项,例如(首先将矩阵“转换”为一维数组)

for (int i = 0; i< arr.size(); i++) {
    for (int j = i + 1; j < arr.size(); j++)
        if (arr[i] == arr[j])
            return true; // found duplicate.

这里的问题当然是复杂度是 O(n^2)。

如果我们首先对数组进行排序(使用合并),这将花费 O(nlogn) 并且算法将是这样的,我们可以做得更好:

for (int i = 0; i < arr.size() - 1; i++) 
    if (arr[i] == arr[i+1])
        return true;

查看here了解更多信息。

【讨论】:

    猜你喜欢
    • 2019-03-05
    • 2018-01-05
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-21
    • 1970-01-01
    相关资源
    最近更新 更多