一道关于求集合交并集的问题
两个有序数组A[n],B[n] 求一个时间为O(n)的计算AUB 和 A交B的算法
初学算法,请高手指点!
[解决办法]
严版的数据结构里有的,去看看
[解决办法]
2个标记指示2个数组,从0开始到结尾
如果当前2个不相同,把小的放入并集,相应的标记后移一位
如果当前2个相同,把那个值放入交集,也放入并集(相同的值也是并集之一)2个标记都相应后移一位
如果一个数组已经遍历完,另一个还有,则把剩下的都放入并集
其实全过程类似与2个有序链表的归并
每个值最多遍历一次,所以O(n)