当前位置:  开发笔记 > 人工智能 > 正文

在C中获取两个数组的差异的有效方法是什么?

如何解决《在C中获取两个数组的差异的有效方法是什么?》经验,为你挑选了1个好方法。

样本输入

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.

    不应修改输入数组顺序和值.

    输出数组可以按任何顺序排列.

    输出数组中不需要重复项.

我需要一些时间有效的逻辑来实现这个程序.提前致谢.



1> Eugene Sh...:

这是一个简单的O(N)时间算法,有点占用空间(它也考虑了重复).

1)声明一个C长度为零的数组4096.
2)第一阵列上的迭代A和为每个元素索引i 增量 C[A[i]]
3)迭代第二阵列B,并且对于每个元件i 递减 C[B[i]]
4)遍历Ci负的C[i]将指示的元素B - A,和正之一将指示的元素A - B
*和绝对值如果您有兴趣,将表明欺骗号码的差异.

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有