對稱差集,兩個集合的並集,減去交集。
比如,集合1,2,3和集合3,3,4,5的對稱差是集合1,2,4,5。
想到的解法,將兩個排序,兩個集合分別用兩個工作指標i,j。比較兩個指標指向的元素,相同就都後移,不相同,更小的指標後移。
以下**,給出了求對稱差集數量的**。
publicstatic
int distinctelementcount(int arr1, int
arr2)
if (arr2.length == 0)
int count = 0;
arrays.sort(arr1);
arrays.sort(arr2);
int i=0,j=0, same = -1;
while (i< arr1.length && jelse
if (arr1[i] ==same)
else
if (arr2[j] ==same)
else
if (arr1[i] else
}count += arr1.length + arr2.length - i -j;
return
count;
}@test
public
void
testdistinct() , new
int));
assert.assertequals(7, distinctelementcount(new
int, new
int));
assert.assertequals(12, distinctelementcount(new
int, new
int));
}
求兩個集合的差集
在c 語言的程式設計開發中,針對list集合的運算有時候需要計算兩個list集合的差集資料,集合的差集是取在該集合中而不在另一集合中的所有的項。a集合針對b集合的差集資料指的是所有在a集合但不在b集合的元素。在c 語言中可以使用except方法來計算兩個list集合的差集資料,簡單快捷只需要一條語句...
計算兩個集合的交集 並集 差集 對稱集
計算 兩個集合的交集 並集 差集 對稱集 import sys import time 重新整理緩衝區 def flush time.sleep 1 除去重複元素 def duplicate removal lt lt1 for i in lt if i not in lt1 return lt1 ...
No46 python求兩個集合的差集
比如 array diff 1 2,2 2,3 2 1,3 第乙個引數是列表a,第二個引數是列表b遍歷a中的元素,檢查它們是否出現在列表b中,若沒有出現在列表b中,則把這個元素新增到結果列表中。def array diff a,b if len a 0 orlen b 0 return a ret ...