两组1000个元素的数组对比,怎样得到数组里面相同元素的个数?

1)若两组1000个元素的数组对比,怎样得到数组里面相同元素的个数?
2)一组1000个元素的数组A重新排列后有1000!种可能,讲这些1000!种可能的数组分别与另一组数组B对比,怎样得到相同元素最多的数组?

5个回答

用HashMap吧,先遍历第一个数组把里面的元素存进HashMap里,再遍历第二个数组和HashMap比较一下
或者两个数组合并,再用HashMap

可能还有更好的方法..

1.双重循环

时间复杂度 n2

2.两个数组排序后再提取相同的元素

时间复杂度 nlogn

3.使用HashMap

时间复杂度 n

需要额外空间 n

方法一:不知道你用的是什么语言,我知道Java里面可以直接把数组放在两个set中,set可以直接取交集。
方法二:如果每个数组里面元素不重复的话,可以以元素或者元素中的某个唯一标识作为key,放在map中,一次性拿出第一个map的key,然后遍历第二个map,如果第二个map中存在某个key,则将这个key拿出来。
方法三:遍历第一个数组,在循环中再遍历第二个数组,判断元素是否相等。

在Python中
1、先遍历两组有多少不同元素;
2、在进行onehot编码和相减,如果数组的绝对值为了0,表明两个元素相等,通过索引得到原有数据

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐