我需要创建一个代码来比较数组中的两个而不对它们进行排序。它们必须具有相同的长度并且以任意顺序包含相同的元素。
- a[] 中的每个整数也在 b[] 中
- b[] 中的每个整数也在 a[] 中
- 所有这些共同值看起来都完全相同 a[] 和 b[] 中出现的次数
示例:
- a = {1, 2, 3},b = {2, 3, 4} 返回 0
- a = {1, 2, 3}; b = {2, 3, 1} 返回 1
- a = {1, 2, 2}; b = {2, 2, 1} 返回 1
- a = {1, 2, 2}; b = {2, 1, 1} 返回 0
- a = {1, 1, 2, 2, 2}; b = {2, 1, 2, 1, 2} 返回 1
我只是不知道该怎么办......
最佳答案
如果数组未排序,您最终将得到二次算法。您可以在算法开始时检查数组长度,如果它们相等,例如 N,您将执行类似的操作
int result = 1;
for (int j=0;j<N;j++) {
bool found = false;
for (int i=0;i<N && !found;i++) {
if (a[j] == b[i]) found = true;
}
if (!found) return 0;
}
关于比较两个未排序 int 数组的代码。 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28574847/