集合求交集有比两个 for 效率更高的方法吗?

2021-02-02 12:02:43 +08:00
 naoh1000
前端程序员,刚才听到 HR 说来面试的求交集只会两个 for,我想了一下也确实只想到一个 for 把集合 A 加入 hashmap,另一个逐项查找集合 B 是否在 hashmap 中,还有更好的方法吗?
1430 次点击
所在节点    算法
4 条回复
elonmask
2021-02-02 12:17:55 +08:00
很明显得用 set,数据是整数同时值比较小的话,可以数组,类似那种计数的方式
pianjiao
2021-02-02 12:32:41 +08:00
map set
mcfog
2021-02-02 12:39:14 +08:00
搞清楚 M+N 复杂和 M*N 复杂就行了,很容易证明理论最小复杂度就是 M+N
Inf1nity
2021-02-02 12:51:12 +08:00
我觉得无论如何都要遍历两次,复杂度 O(M+N)。各类 Set 应该就可以满足需要了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/750568

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX