我正在寻找一种算法,用于在特定条件下交叉两个小的、未排序的数组。
- 数组项的类型只是整数或类似整数的类型。
- 很长一段时间(大约30~40%),一个或两个数组可能为空。
- 数组通常非常小 - 通常为1~3项,我不希望超过10项。
- 交集函数将被频繁调用。
- 我不关心平台相关的解决方案 - 我正在使用x86/windows/C++
暴力/排序和交集的解决方案都不是那么糟糕,但我认为它们不够快。是否有更优化的解决方案?
if (a.empty || b.empty) return emptySet;
开始进行排序和交集操作。此外,如果只有一个元素,您可以直接在另一个数组中查找该元素。 - Bernhard Barker