求数组交集100分!可+100!!!

来源:百度知道 编辑:UC知道 时间:2024/09/24 02:42:37
9个数组:数组1-数组9,1个跟数组a 都为int数组, 只知道长度都小于等于9。
求挑出9个数组中任意两组(9个数组的组合)的交集的元素中有两个或以上属于数组a里面的元素!
然后把结果(可能有好几对)数组删除交集意外的元素!
(整个过程是吧 数组1 数组2 数组a 取这三个数组的交集,如果元素大于等于2.那么删除数组1跟数组2交集(交集是指三个数组的交集)意外的元素,继续查找数组1 数组3 数组a,去这三个数组的交集---删除数组1跟数组3交集以外的元素,继续查找数组1 数组4 数组a------。一直到把9个数组的组合都搜索遍跟删除)

例如:
9个数组:z1={1,3,5,7},z2={1,3,5},z3={1,2,4,6,8},z4={1,5,9},z5={1,2},z6={3,4,5,6},z7={1,5,6},z8={3,6,8,9},z9={1,5,7}
数组a={1,3,6}
需求结果有三对:
一:z1,z2 //-------{1,3}
二:z3,z7 //-------{1,6}
三:z6,z8 //-------{3,6}

假如数组a={5,7,8}
其结果只有一对:z1,z9 //------{5,7}
不符合要求的数组 不能删除元素。

先把数组1-9处理一下,去掉数组a中没有的元素,只保留a中有的元素,如z1只剩下{1,3};z2只剩下{1,3};然后再去掉元素个数小于2个的数组。然后再两两比较,如果公共元素大于等于两个则满足要求!