首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

求两无序不反复数组的交集

2012-11-04 
求两无序不重复数组的交集求两无序不重复数组的交集//输入:a[]{5,7,8,9,1,2,3 } b[]{2, 8,10,4,6,7}//

求两无序不重复数组的交集
求两无序不重复数组的交集


//输入:a[]={5,7,8,9,1,2,3 }; b[]={2, 8,10,4,6,7};

//输出:{2,7,8}


[思路1]:

判断a数组元素值的元素是否在b中,是则输出之。

时间复杂度:O(n2)

ypedef struct HASHSET{int key;  //值int nCnt; //计数}hashSet;hashSet* pSetArray = new hashSet[m*n]; //空间换时间for(int i = 0; i <m*n; i++){pSetArray[i].key = 0;pSetArray[i].nCnt = -1;}//O(n)实现输出…void hashInterSection(hashSet* pSetArray, int a[], int b[], int m, int n){for(int i = 0; i < m; i++){pSetArray[a[i]].key = a[i];pSetArray[a[i]].nCnt++;}for(int j = 0; j < n; j++){pSetArray[b[j]].key = b[j];pSetArray[b[j]].nCnt++;}for(int k = 0; k < m*n; k++){if(pSetArray[k].nCnt == 1){cout << pSetArray[k].key << "\t"; //两次累加-1+1+1=1.}}cout << endl;}

       或者大家有什么更好的方法,欢迎讨论,谢谢!

1楼ccc435428762小时前
楼主想问一下..为什么分配m*n个?2个数组放到一个hash里难道不是m+n个空间??求解答....

热点排行