設計算法以查找兩個排序數字列表中的所有常見元素。例如。對於列表2,4,4,4,7和1,2,2,6,4,4,7,輸出應該是2,4,4,7您使用了哪種算法設計技術,爲什麼?你是什麼算法使得如果兩個給定的列表的長度是m和n分別設計一種算法來查找兩個排序數字列表中的所有常見元素
vector<int> findCommon(vector<int> arr1, vector<int>arr2){
vector<int> intersection;
int n1 = arr1.size();
int n2 = arr2.size();
int k = 0, x = 0;
while (x < n1 && k < n2) {
if (arr1[x] > arr2[k]) {
l++;
} else if (arr2[k] > arr1[x]) {
k++;
} else {
intersection.push_back(arr1[i]);
x++;
k++;
}
}
return intersection;
蠻力算法用作上述設計技術比較的最大和最小數。 複雜度爲O(m + n),因爲在最壞的情況下,兩個數組之間不會有交集,我們需要增加第一個索引總共m次,並增加第二個索引總共n次,這就是總共m + n次。
你至少應該指定你想要使用什麼語言,以及到目前爲止你做了什麼! –
我做了一些修改。把我的解決方案。然後判斷我。它是我在這個網站上的第一篇文章 –