社区
数据结构与算法
帖子详情
两个整型数组的交集
chin_chen
2009-03-05 12:10:38
如题,删除两个整型数组A和B的交集.
有啥办法没?要求复杂度最优。
...全文
190
5
打赏
收藏
两个整型数组的交集
如题,删除两个整型数组A和B的交集. 有啥办法没?要求复杂度最优。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
chin_chen
2009-03-05
打赏
举报
回复
[Quote=引用 1 楼 litaoye 的回复:]
如果不考虑空间,用hash可以达到O(A+B)
否则的话,可以先对AB分别排序,然后用归并排序的方法,应该可以达到A*logA + B*logB + O(A+B)
[/Quote]
怎么建hash啊?是建一个数组,把B所有元素按大小放进在数组里面对应的位置,然后对A的元素一个个的找,找到的话就删掉是吧?是这样么?
绿色夹克衫
2009-03-05
打赏
举报
回复
如果不考虑空间,用hash可以达到O(A+B)
否则的话,可以先对AB分别排序,然后用归并排序的方法,应该可以达到A*logA + B*logB + O(A+B)
大王派我去巡山
2009-03-05
打赏
举报
回复
[Quote=引用 2 楼 ppass 的回复:]
我给出一个另类的思路,内存开销可能会大,但速度绝对快.
1. 找出2个数组的最大值nMax.
2. 定义一个桶array,容量为nMax.并全部初始化为0.
3. 遍历一遍数组A,将array[a[i]]的值=1; //不是++,因为A中可能也有重复的.
4. 遍历一遍数组B,将array[b[i]]的值++;
5. 遍历一遍数组array,将>1的值统统删除. //不是=2,因为B中有重复的,值-1,就是重复的次数.
看这个帖子,昨天刚刚讨论过的.
http://topic.csdn.net/u/20090304/…
[/Quote]
这其实就是1L说的Hash的办法
ppass
2009-03-05
打赏
举报
回复
我给出一个另类的思路,内存开销可能会大,但速度绝对快.
1. 找出2个数组的最大值nMax.
2. 定义一个桶array,容量为nMax.并全部初始化为0.
3. 遍历一遍数组A,将array[a[i]]的值=1; //不是++,因为A中可能也有重复的.
4. 遍历一遍数组B,将array[b[i]]的值++;
5. 遍历一遍数组array,将>1的值统统删除. //不是=2,因为B中有重复的,值-1,就是重复的次数.
看这个帖子,昨天刚刚讨论过的.
http://topic.csdn.net/u/20090304/17/10ee708f-6f9a-4100-b5fc-885fa8aca3a7.html
绿色夹克衫
2009-03-05
打赏
举报
回复
就是这样,如果个数还有要求的话,可以加一个计数,比如A里有2个10,B里有5个10,删除后B还需要保留3个10的话
也可以用比较现成的hashtable(C不太熟,也许不叫这个),.net里面叫做Dictionary
[Quote=引用 4 楼 chin_chen 的回复:]
引用 1 楼 litaoye 的回复:
如果不考虑空间,用hash可以达到O(A+B)
否则的话,可以先对AB分别排序,然后用归并排序的方法,应该可以达到A*logA + B*logB + O(A+B)
怎么建hash啊?是建一个数组,把B所有元素按大小放进在数组里面对应的位置,然后对A的元素一个个的找,找到的话就删掉是吧?是这样么?
[/Quote]
两个
有序
整型
数组
的
交集
本文介绍两种情况下计算
两个
有序
整型
数组
交集
的方法:当
数组
长度相近时采用二路归并或哈希表;当
数组
长度相差较大时采用二分查找。通过具体的C++代码示例展示了每种方法的实现过程。
计算
两个
有序
整型
数组
的
交集
本文介绍两种求解
两个
有序
整型
数组
交集
的方法:一是使用二路归并法逐个比较
数组
元素;二是通过哈希表记录元素出现次数来确定
交集
。提供了具体的Java实现代码。
求
两个
有序
整型
数组
的
交集
本文介绍了两种高效方法来寻找
两个
有序
整型
数组
的
交集
:二路归并法和哈希查找法。针对
数组
长度相近的情况,推荐使用二路归并法;当
数组
长度相差较大时,建议采用二分查找法。这些方法旨在提高算法效率,适用于不同场景。
如何计算
两个
有序
整型
数组
的
交集
本文介绍了一种在
两个
非降序
整型
数组
中寻找共同元素的算法,包括适用于
数组
长度相近和相差悬殊情况的方法。通过比较
数组
元素,实现快速定位
交集
元素,同时提供了针对不同
数组
长度差异的优化策略。
java中
两个
整型
数组
求
交集
_Java中
两个
数组
的
交集
本文提供了一个Java程序示例,展示了如何找出
两个
已排序
数组
的
交集
,即找到
两个
数组
共有的元素。
数据结构与算法
33,026
社区成员
35,336
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章