样本输入
Array_1 [] = { 10, 20, 30, 40, 50 }; Array_2 [] = { 30, 40, 50, 60, 70 };
样本输出
Array_1_Extras [] = { 10, 20 }; Array_2_Extras [] = { 60, 70 };
描述
输入数组未排序.
输入数组长度 - 10K.
输入数组值范围为0 - 4095.
不应修改输入数组顺序和值.
输出数组可以按任何顺序排列.
输出数组中不需要重复项.
我需要一些时间有效的逻辑来实现这个程序.提前致谢.
这是一个简单的O(N)
时间算法,有点占用空间(它也考虑了重复).
1)声明一个C
长度为零的数组4096
.
2)第一阵列上的迭代A
和为每个元素索引i
增量 C[A[i]]
3)迭代第二阵列B
,并且对于每个元件i
递减 C[B[i]]
4)遍历C
和i
负的C[i]
将指示的元素B - A
,和正之一将指示的元素A - B
*和绝对值如果您有兴趣,将表明欺骗号码的差异.