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是字典型別的...