面試機試小程式之陣列合併

2022-09-02 23:48:23 字數 825 閱讀 1154

有兩個公升序的int型陣列 a b,要求合併陣列,並保持公升序,注意**效率,時間複雜度和記憶體。

當時要求手寫實現,由於剛上來未注意到公升序,寫了乙個陣列合併,並對陣列進行氣泡排序的演算法,後來面試官一看,效率和時間複雜度不行,想要更優雅的方法,其實也非常簡單,只是當時想寫乙個獲取兩個陣列最小數的方法getarrminnum(a,b),獲取a中最小數,並記錄下標,然後再跟b中的數字做比較,取到a,b中的最小數以及座標,然後再怎麼迴圈陣列,略過陣列下標的混亂思維裡了。仔細觀察,如果a[a.length-1]b[length-1],表示陣列放置完畢,否則,把b剩下的陣列依次放入新陣列即可。

public class arrtest, b=;

arrtest  arrtest = new arrtest();

arrtest .mergearr(a,b);

public void mergearr(int a,int b)elseelse{

i--;

arr[arrindex]=b[bindex];

arrindex++;

bindex++;

while(bindexarr[arrindex]=b[bindex];

arrindex++;

bindex++;

print(arr);

public void printarr(int arr){

for(int i=0;isystem.out.println(arr[i]);

很直觀的思維,用**表現出來即可,就是不知道當時怎麼了,沒仔細看題,先入為主,一下樓反而思維清晰了。

當然,兩個無序的陣列,合併,並排序,這個倒是可以留著鍛鍊一下思維。

Pandas之陣列合併

pd.concat objs,axis 0,default 0 join outer 合併集合方式,預設並集,default outer join axes none 直接確定結果使用的列名 ignore index false 是否保留原索引,為true時不保留 keys none 設定多級索引 ...

面試題3 有序陣列合併

初階 合併兩個有序陣列a和b,使得結果依然有序。高階 合併兩個有序陣列a和b,假設a有n個數,b有m個數,a陣列後面還有m個空餘空間,需要將結果儲存在a中。答 一種解答當然是把兩個陣列放在一起重新排序了。這樣的時間複雜度是o nlogn 沒有用到陣列已經有序的條件,所以顯然不是乙個期望的解答。那麼既...

谷歌面試題 兩個陣列合併後第k小的數字

題目描述 給定兩個整型陣列a和b。我們將a和b中的元素兩兩相加可以得到陣列c。譬如a為 1,2 b為 3,4 那麼由a和b中的元素兩兩相加得到的陣列c為 4,5,5,6 現在給你陣列a和b,求由a和b兩兩相加得到的陣列c中,第k小的數字。輸入 輸入可能包含多個測試案例。對於每個測試案例,輸入的第一行...