我有两个具有唯一值的排序数组(可以是 ArrayList、Collections 或任何其他数据格式)。比较它们的最快方法是什么?目标是删除两个列表中存在的所有值。
开始于:
int [] a = {1, 2, 3, 4, 5};
int [] b = {1, 2, 3, 6, 7};
结束于:
a = {4, 5}
b = {6, 7}
最佳答案
使用 MergeSort 中合并步骤的修改版本
- 为每个数组获取一个迭代器
- 比较迭代器的值
- 如果相等,则递增
- 如果不相等,将较小的值放入唯一值数组并仅递增该迭代器
- 重复直到遇到数组的末尾
- 如果在其他数组中还有剩余,则它们是唯一的
关于java - 最快的数组比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4108342/