这是一个很受欢迎的问题,但我无法找到满足我个案的答案。
我有布尔数组,其中我试图查看一个数组是否是另一个数组的子集。
示例:
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
不是其中任何一个的子集,但arr3
是arr1
的子集。
我尝试过从bools的真值开始创建整数数组的一些混乱尝试,但我仍然不确定如何验证它们是否是彼此的顺序(即子集)。
我尝试使用此算法
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设为true,在arr1
但如果我将arr2
与超集arr1
进行比较,则会返回false,因为arr1[0]
不是真的。
答案 0 :(得分:3)
下面是检查数组a
是否包含true
中true
的所有索引b
的函数,此处为a
和{{ 1}}具有相同的大小。
b