兩個已排序陣列,找出相同的部分

2021-06-02 14:28:18 字數 733 閱讀 5696

存在的兩個陣列,已經排好順序,求其相同的部分,有以下幾種求法:

1) 窮舉法

最原始的方法,時間複雜度為o(m*n),**如下:

int a = new int; //示列陣列

int b = new int;

for (int i = 0 ; i < a.length; i++)

}}

2) binary search

通過乙個陣列的for迴圈,不斷與另一陣列的中間值比較,時間複雜度為o(nlogn),**如下:

int a = new int;

int b = new int;

for (int i = 0 ; i < a.length; i++) else if(a[i] < b[mid]) else

}}

3) hashmap

把其中的乙個數組裝進hashmap,拿另外乙個陣列來取值,為空則不相同,時間複雜度為o(n),**如下:

int a = new int;

int b = new int;

map hashmap = new hashmap();

for (int i = 0 ; i < a.length ; i++)

for (int j = 0 ; j < b.length; j++)

}

php找出兩個有序陣列中的相同元素

如題,筆試一般喜歡考這些問題,給定兩個有序陣列 元素唯一,不重複 如何從中找出相同的元素 php其實已經給我們提供了方法來實現 array intersect arr1,arr2 該方法只比較鍵值,返回鍵值相同的元素 當然筆試也不會考你系統函式呼叫,下面說說思路 很簡單,兩個陣列從下標為0開始比較大...

兩個已排序陣列的合併 C語言

最近在紙上寫乙個已排序陣列的合併時,花了超過預期的時間。仔細想想,這種要放到畢業找工作那會兩下就出來了,原因還在於工作後對基礎沒有重視,疏於練習。說開一點,現在搜尋引擎的發達確實給問題的解決帶來了便利,但是久而久之,對很多東西的掌握其實並不深入。比如 系的人經常分享一些linux核心io優化相關的內...

尋找兩個已排序陣列的中位數

給定兩個大小為 m 和 n 的有序陣列 nums1 和 nums2 請找出這兩個有序陣列的中位數。要求演算法的時間複雜度為 o log m n nums1 1,3 nums2 2 中位數是 2.0 nums1 1,2 nums2 3,4 中位數是 2 3 2 2.5 class solution w...