0
這是面試前的提問者。我相信我有答案只是想得到確認即時通訊的權利。從兩個列表中包含的元素的聯合設置
第1部分 - 告訴我這段代碼做什麼,以及它的大O性能 2部分 - 自己重新寫出來,告訴我你的解決方案
def foo(a, b):
""" a and b are both lists """
c = []
for i in a:
if is_bar(b, i):
c.append(i)
return unique(c)
def is_bar(a, b):
for i in a:
if i == b:
return True
return False
def unique(arr):
b = {}
for i in arr:
b[i] = 1
return b.keys()
答案的大O性能: 它從兩個列表中包含的元素的聯合創建一個集合。它大O性能是O(n2)的
我的解決方案,我相信達到O(n)的
Set A = getSetA();
Set B = getSetB();
Set UnionAB = new Set(A);
UnionAB.addAll(B);
for (Object inA : a)
if(B.contains(inA))
UnionAB.remove(inA);
好的謝謝。所以我的編碼答案是一個聯合會是錯的,對吧? –