2021秋招部分筆試題

2021-10-21 14:59:55 字數 1291 閱讀 4369

2021秋招部分筆試題彙總 企業提供原題 00:00:28

4/6[程式設計題]查詢二叉搜尋樹的葉子節點

時間限制:c/c++ 1秒,其他語言2秒

空間限制:c/c++ 32m,其他語言64m

給乙個二叉查詢樹(binary search tree)的前序遍歷結果陣列,列印出所有的葉子節點。

輸入描述:

輸入為二叉查詢樹的前序遍歷結果陣列,元素之間用空格分隔:

9 8 7 10

輸出描述:

所有的葉子節點元素,用空格分隔

解釋:因為二叉搜尋樹的表示為:

9
8 10

輸出的葉子節點為: 7 10

輸入例子1:

9 8 7 10

輸出例子1:

7 10

1.首先我們要知道什麼是二叉查詢樹,就是每乙個節點的左子樹都要小於它,它的右子樹都要大於它。

又因為是前序遍歷的順序。我們知道第乙個點肯定是根節點,那麼我們就找陣列裡面第乙個大於它的元素,第乙個大於它的點的右邊就是它的右子樹,而從它開始到第乙個大於它的節點部分就是它的左子樹,我們遞迴的遍歷遍歷這個過程,當左邊界等於右邊界時,代表當前元素已經沒有孩子了,直接輸出這個結點即可。注意一下邊界情況即可。`

#include

#include

#include

#include

using

namespace std;

const

int maxn=

1e6;

int a[maxn]

;int

findindex

(int start,

int ed ,

int target)

//找第乙個大於它的數

return i;

}void

dfs(

int start,

int en)

int index =

findindex

(start+

1, en, a[start]);

if(index <= en)

//說明當前結點有左子樹和右子樹需要分別遍歷其左右子樹,因為是前序,所以每乙個start都是根結點,或者葉子結點

else

//說明只有左子樹,只需要遍歷左子樹即可

}int

main()

while

(c==

' ')

;// cout,i-1);

}

2021秋招網易筆試

給定乙個字串 s,你可以通過在字串前面新增字元將其轉換為回文串。找到並返回可以用這種方式轉換的最短回文串。示例 1 輸入 aacecaaa 輸出 aaacecaaa 示例 2 輸入 abcd 輸出 dcbabcd 把要處理的字元分成回文串和非回文串,再將非回文串逆置加到頭部。要注意,已經移動出最長回...

2021華為秋招軟體開發筆試題

例如系統記錄到某學生頁面停留時間如下 10 120 10 20 10 10 50 該學生第一分鐘學完1頁,第二分鐘學完0頁,第三分鐘學完5頁,第四分鐘學完1頁,則判定為不滿足要求。輸入描述 輸入資料報含多個學生的提交記錄,第一行是整數表示記錄個數,每個記錄佔一行,每行的第乙個數是n,表示頁面數,然後...

2021網易秋招筆試題(Android開發)

校招的筆試題通常是4道程式設計題,時間為2個小時,每題25分。2021秋招筆試題總結如下,包含問題和 實現。解析 這個很簡單,用python的話只需要用dict統計出每個單詞的個數然後計算出頻率大於1 的單詞,儲存輸出。用dict統計數字 如下 d key d.get key,0 1 d是字典型別的...