对称差分b/w未排序数组
Symmetric Difference b/w unsorted arrays
我在准备面试的时候就尝试过解决这个问题。问题如下:
求数组
输入:两个整数数组
输出:一个整数数组只出现在一个(不是两个)数组中
测试用例:输入:
[ 1, 7, 8, 2, 4, 5 ] [ 3, 5, 1, 7, 6, 9 ]
输出 :
[ 8, 2, 4, 3, 6, 9 ]
我想到的方法是
-
运行两个循环,找到共同元素然后打印其余部分的蛮力-
T=O(n2)
-
对两个数组进行排序,并遵循与MergeSort的Merge Procedure -
T=O(nlogn)
相似的策略
我想不出O(n)中的任何方法。有没有时间复杂度更低的算法来解决这个问题?
您还可以在c++/java
最快的方法是将第一个Array
的所有值放入HashTable
,然后执行contains()
以查看第二个Array
的值是否存在。这将为您提供O(n)
相关文章:
- 在c++中尝试对对象数组进行排序时,出现std:bad_alloc错误
- 显示错误输出的简单数组排序程序
- 为什么我的排序算法会更改数组值
- 为什么我需要C++中不同的排序格式来对这个USACO代码上的数组和优先级队列进行排序
- 在 c++ 中对类中的 c 字符串动态数组进行排序的最佳方法是什么?
- 合并排序不排序自创建数组类 c++
- 带有枚举方向/类型的气泡排序结构数组
- 为什么指针在对二维数组进行排序时无法正常工作?
- 排序并行数组
- 如何在数组 c++ 中对字符串进行排序
- 为什么在此排序算法实现中,向量明显比数组慢?
- 如何对不在数组中的变量进行排序?
- C++数组与向量排序(在我的情况下,向量比数组慢~2.5倍(无优化))
- 按字母顺序对结构内数组变量中的名称进行排序
- 使用排序函数 c++ 对字符数组进行排序
- 使用 std::sort 对二维 c 数组进行排序
- 使用STL对用户输入数组进行排序的错误有什么解决方案吗?
- 使用 std::sort 对 C 样式的 2D 数组进行部分排序
- 数组为此合并排序函数提供了正确的输出,但向量给出了不正确的输出.出了什么问题?
- 对 0 、1 和 2 的数组进行排序