查詢兩個陣列相同元素

2021-10-09 12:29:20 字數 568 閱讀 2457

攢rp ing

一場面試的一道演算法題,題目如下:

有兩個公升序的陣列,在這兩個陣列裡面有且只有乙個相同的元素,考慮時間和空間複雜度,找到該元素,禁用js中所有方法,單純演算法題(emmmmm,為何和我之前的不一樣)話不多說,上**,我真是越來越喜歡動手敲一下了:

function

foo(arr_1, arr_2)

else

if(arr_1[i]

> arr_2[j])}

else

if(arr_1[i]

< arr_2[j])}

if(i === arr_1.length || j === arr_2.length)

}

思路:

實現兩個指標,i和j,分別從兩個陣列開始,為了方便書寫,下面只用i和j代表它們指向的元素,如果i與j相等,直接輸出,如果i大於j,需要j向後移,如果i小於j,需要i向後移,異常結束條件為其中至少乙個陣列遍歷完畢。

ps 2020-09-16 58 !

可惜了,沒想到最後的結果,可能是好久敲過演算法了,也可能是過於緊張,攢攢rp了。

兩個 陣列,需要挑出相同的元素

一般的 首先肯定會想到 這樣的程式 for int i 0 ifor int j 0 i.但是這裡需要注意的就是 這個方法需要迴圈 m n 次才可以 完成此任務。所以考慮使用雜湊表的方法,將乙個陣列裝入雜湊表中,然後判斷另乙個陣列是否存在表內即可。這種方法的迴圈次數是m n.例如 public st...

返回兩個陣列中非相同的元素

csdn上又有個提這樣的問題,看來這個問題很多時候都會碰到。如下 var a 1 2 3 4 var b 1 2 如何比較才能得到陣列c 3 4 基本的演算法就是挨個比較兩個陣列的元素,把不同的跳出來單獨放到乙個陣列裡,最後返回該陣列。其實陣列元素如果是基本型別 number,string,bool...

C 取兩個陣列的相同元素

以往我們都是肯定絞盡腦汁,肯定什麼迴圈,元素大小,什麼因素都考慮進去。但是現在採用linq可以很好的解決這個問題。找出兩個或多個陣列的相同項。相當簡單 using system using system.collections.generic using system.linq using syst...