陣列2個的交集

2021-09-09 09:26:41 字數 949 閱讀 1182

given two arrays, write a function to compute their intersection.

example:

given nums1 =[1, 2, 2, 1], nums2 =[2, 2], return[2].

note:

這道題讓我們找兩個陣列交集的部分(不包含重複數字),難度不算大,我們可以用個set把nums1都放進去,然後遍歷nums2的元素,如果在set中存在,說明是交集的部分,加入結果的set中,最後再把結果轉為vector的形式即可:

class solution 

return vector(res.begin(), res.end());

}};

我們還可以使用兩個指標來做,先給兩個陣列排序,然後用兩個指標分別指向兩個陣列的開頭,然後比較兩個陣列的大小,把小的數字的指標向後移,如果兩個指標指的數字相等,那麼看結果res是否為空,如果為空或者是最後乙個數字和當前數字不等的話,將該數字加入結果res中,參見**如下:

class solution 

++i; ++j;}}

return res;

}};

我們還可以使用二分查詢法來做,思路是將乙個陣列排序,然後遍歷另乙個陣列,把遍歷到的每個數字在排序號的陣列中用二分查詢法搜尋,如果能找到則放入結果set中,這裡我們用到了set的去重複的特性,最後我們將set轉為vector即可:

class solution 

}return vector(res.begin(), res.end());

}bool binarysearch(vector&nums, int target)

return false;

}};

求2個集合的交集

文章出處 求2個集合的交集 最簡單 粗暴的迴圈遍歷2個集合,判斷如果有相同的元素就取出來。假設集合1的長度為m,集合2的長度為n,那麼,時間複雜度為 o m n public static list getintersection list list1,listlist2 return list3 ...

求2個集合的交集

求2個集合的交集 最簡單 粗暴的迴圈遍歷2個集合,判斷如果有相同的元素就取出來。假設集合1的長度為m,集合2的長度為n,那麼,時間複雜度為 o m n public static list getintersection list list1,listlist2 return list3 利用has...

求陣列交集

注意 要求提供完整 如果可以編譯執行酌情加分。兩個已排序的整型陣列,求交集,最快演算法 輸入 兩個已排序的整型陣列 int a m b n 輸出 兩個陣列的交集 include include using namespace std 遞迴二分法,返回陣列中與目標值相等或小一號的下表 int sear...