编写一个函数 int same_set(int a[],int b[],int len), 该函数检查相等长度的两个数组是否包含相同的元素,若包含相同的元素, 则返回1,否则返回0,其中参数len是数
时间: 2024-05-10 10:13:50 浏览: 93
C语言中判断两数组中是否有相同的元素
组的长度,数组a和数组b是待比较的两个数组。
好的,您的问题是编写一个函数int same_set(int a[],int b[],int len),该函数检查相等长度的两个数组是否包含相同的元素,若包含相同的元素,则返回1,否则返回0,其中参数len是数组的长度,数组a和数组b是待比较的两个数组。
下面是该函数的实现:
```c++
int same_set(int a[], int b[], int len) {
unordered_map<int, int> map;
for (int i = 0; i < len; i++) {
map[a[i]]++;
map[b[i]]++;
}
for (auto p : map) {
if (p.second > 1) {
return 1;
}
}
return 0;
}
```
该函数使用了一个哈希表,首先将数组a和数组b中的元素插入哈希表中,并记录它们的出现次数。接下来遍历哈希表,如果一个元素出现了两次及以上,说明它在数组a和数组b中都出现了,即数组a和数组b包含相同的元素,此时返回1;如果没有找到这样的元素,说明数组a和数组b不包含相同的元素,返回0。
您可以使用该函数来检查两个数组是否包含相同的元素,希望能对您有帮助!
阅读全文