程式設計師筆試面試演算法題系列 陣列

2021-07-04 03:23:09 字數 1065 閱讀 6790

1 遞迴實現陣列求和

void sum(int a,int n,double& sum)
每次遞迴,在sum上累加,同時n自減,當n<0,退出遞迴。

2 利用乙個for迴圈列印二維與三維陣列

double total=row*col;

for(int k=0;k

3 遞迴判斷陣列是否遞增

return a[i]

4 分別使用遞迴與非遞迴實現二分查詢

二分查詢,必須熟練掌握的基礎演算法,有很多相關變形,常被用於提公升演算法效率。

5 在排序陣列中確定給定數字出現的次數

利用二分查詢確定給定數字的左右邊界即可。

6 計算兩個有序陣列交集

比較大小,選取較小者,合併

7 找出陣列中重複次數最多的數

mapm_count;

int val=0;

for(int i=0;im_count[val])

val=a[i];

}

8 找出陣列中出現次數超過一半的數

double sum=0;

for(int i=0;i0)

sum--;

else

}

2) 另一種解法威力更大,即利用快速排序中的分割槽演算法partition,這一演算法能夠在nlogn時間複雜度內尋找前k個數,在本題中,k=n/2。

9 判斷陣列中數值是否連續(0可替代任意數)

陣列排序,計算最大值與最小值差是否在一定範圍內。

10 n個元素,2個數出現奇數次,其餘數均出現偶數次,求這兩個數。

奇偶數問題一般可通過位運算解決。本體可通過兩次總體的異或操作得到最終結果。

程式設計師面試系列

wx pub 曹當家的 準備面試已經 2 月有餘了,這一次我的目標是大廠。說幹就幹,我對目前的狀況做了乙個具體的分析,以及對未來需要達到的目標做了詳細的規劃。現狀 1.過去一年做的需求又多又雜,雖然基本的技術棧都用的還算熟練,但是對很多技術的原理都一知半解。2.平時做的專案需求沒有好好總結提煉,似乎...

C 筆試面試(演算法題集一)

1 你讓一些人為你工作了七天,你要用一根金條作為報酬。金條被分成七小塊,每天給出一小塊。如果你只能將金條分割兩次,你怎樣分給這些工人?解答 將金條分割成1 2 4.這樣這三個數字將可以組成1 7的任何數字。2 用一種演算法來顛倒乙個鍊錶的順序。解答 遞迴的解法 node reverse node h...

校招準備系列9 筆試面試演算法題

可以先對一些簡單情形進行手工模擬,查詢規律 有時先對陣列進行排序可以使運算變得簡單,提高效率 字串問題 括號匹配問題,可以考慮逆向思維,從右往左看 從初態到某一狀態a最少需要幾步?可以考慮從狀態a回到初態的逆過程需要幾步 括號匹配,標準匹配正負之和count為0,允許一次交換則count下限調整為 ...