c++ - 验证是一个数组是另一个数组的子集

标签 c++ arrays subset

这是一个热门问题,但我找不到满足我的情况的答案。

我有 bool 数组,我试图在其中查看一个数组是否是另一个数组的子集。

例子:

const int size = 10;
bool arr1[size];
bool arr2[size];
bool arr3[size];

assume the arrays have been initialized to false except for the following:

arr1 4,5,6 = true
arr2 0 = true
arr3 4,5 = true

在这个例子中,arr2 不是两者的子集,但是 arr3arr1 的子集。

我尝试了一些从 bool 的真实值创建整数数组的困惑尝试,但我仍然不确定如何验证它们是否按顺序排列(即子集)。

我尝试使用这个算法

int size = 10;
for (int i = 0; i<size; i++)
{
    for (int j = 0; j<size; j++)
    {
       if(arr2[i] == arr1[j])
          break;
    }
    if (j == size)
       return false;
}
return true;
}

这个也没用。

目标是确定一个数组是否包含另一个数组的所有元素。 在这种情况下,arr3 的索引 4 和 5 为真,在 arr1

中也是如此

但如果我将 arr2 与超集 arr1 进行比较,它将返回 false,因为 arr1[0] 不是 true。

最佳答案

下面是检查数组 a 是否包含 true b 中的所有索引 true 的函数或者不是,这里的 ab 大小相同。

bool checkArrays(bool a[], bool b[], int n) {
    for(int i=0; i<n; i++) {
        if(b[i] && b[i] != a[i]) // compare only if b[i] is true
            return false;
    }
    return true;
}

关于c++ - 验证是一个数组是另一个数组的子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43829923/

相关文章:

objective-c - Objective-C - 创建一个多维数组,其维度在初始化时指定

r - R中子集聚合函数的意外行为

R,基于方差截止的滤波器矩阵

java - 从图像中去除背景噪音,使 OCR 的文本更清晰

c++ - 创建密码的 SHA-256 散列的 Botan 教程或示例

c++ - 如何区分来自同一子网和不同 IP/用户的 sockaddr_in 结构

python - pandas:快速计算具有某些值的列的总和

c++ - 如何在 C++ 模板类之间共享 protected 成员?

C++ 指针和对象初始化

javascript - For 循环数组以查找该数组中的特定值。相反,我得到了整个数组