直通BAT面試演算法精講課1

2022-02-03 13:19:22 字數 895 閱讀 2312

1.有一棵二叉樹,請設計乙個演算法,按照層次列印這棵二叉樹。

給定二叉樹的根結點root,請返回列印結果,結果按照每一層乙個陣列進行儲存,所有陣列的順序按照層數從上往下,且每一層的陣列內元素按照從左往右排列。保證結點數小於等於500。

/*

struct treenode

};*/

class

treeprinter

if(cur->right)

if(nlast ==cur)

}return

ret;}};

2.如果對於乙個字串a,將a的前面任意一部分挪到後邊去形成的字串稱為a的旋轉詞。比如a="12345",a的旋轉詞有"12345","23451","34512","45123"和"51234"。對於兩個字串a和b,請判斷a和b是否互為旋轉詞。

給定兩個字串ab及他們的長度lenalenb,請返回乙個bool值,代表他們是否互為旋轉詞。

測試樣例:

"cdab",4,"abcd",4
返回:true

class

rotation

string c= a+a;

for(int i=0;i)

return

false

; }};

view code

class

rotation

else

return

false

; }

};

直通BAT面試演算法精講課2

對於乙個int陣列,請編寫乙個氣泡排序演算法,對陣列元素排序。給定乙個int陣列a及陣列的大小n,請返回排序後的陣列。測試樣例 1,2,3,5,2,3 6 1,2,2,3,3,5 冒泡 依次比較相鄰,大的放後面。class bubblesort return a class bubblesort r...

直通BAT面試演算法精講課 動態規劃

1.有陣列penny,penny中所有的值都為正數且不重複。每個值代表一種面值的貨幣,每種面值的貨幣可以使用任意張,再給定乙個整數aim 小於等於1000 代表要找的錢數,求換錢有多少種方法。給定陣列penny及它的大小 小於等於50 同時給定乙個整數aim,請返回有多少種方法可以湊成aim。測試樣...

直通BAT面試演算法精講 排序(1)

注 所有的 都是用python實現的,都是自己寫的,可能有些地方不太完善 時間複雜度 o n 2 空間複雜度 o 1 思想 依次訪問元素,逆序就置換。一趟排序後最大 小 的被置換到最後 def bubble sort arr,n ifnot arr return none for i in rang...