我正在嘗試解決以下問題。有兩個大小爲n的數組A和大小爲n + 1的B數組。 A和B具有相同的所有元素。 B有一個額外的元素。找到元素。將原始int數組轉換爲列表
我的邏輯是數組列表並檢查B中的每個元素存在於A.
但是,當我使用的基本數組我的邏輯是行不通的轉換。如果我正在使用
Integer [] a ={1,4,2,3,6,5};
Integer [] b = {2,4,1,3,5,6,7};
我的代碼工作正常。
public static void main(String [] args)
{
int [] a ={1,4,2,3,6,5};
int [] b = {2,4,1,3,5,6,7};
List<Integer> l1 = new ArrayList(Arrays.asList(a));
List<Integer> l2 = new ArrayList(Arrays.asList(b));
for(Integer i :l2)
{
if(!l1.contains(i))
{
System.out.println(i);
}
}
}
而且我的邏輯是O(n + 1)。有沒有更好的算法。
感謝
你的邏輯是N * M個,基本上平方(N^2),因爲數組中的每個元素你第二陣列中做搜索,在詞典/地圖搜索的情況下,它會更快,但你的情況與列表是一個^ 2 – sll