convert sorted Array to BST

感覺刷了這么久的題好像有一點進(jìn)入狀態(tài)了...現(xiàn)在做題思路比最開始快了很多,這題基本上3分鐘就做完了。


大概思路是要做一個root, 一個left subtree, right subtree. 但是我一開始只有一個function,我發(fā)現(xiàn)要recursion的時候, array不是很好取middle point。 因為比如最開始Array是[1,3,4,5,6,7,8,9]. 第一次mid point拿到root以后,要把middle point的左右分成兩個子array 繼續(xù)recursion, 類似[1,3,4,5], [7,8,9] 這樣。 這個時候就必須需要用到另一個function了,這樣你才可以多允許幾個參數(shù)。

還有一個比較tricky的地方在于, middle point怎么取。

比如說odd number elements in array, array size =11. 那么很自然取第6個number,這樣left 5 個, right 5個。

但是如果是even number elements in array. array size = 10. 怎么?。?/p>

[1,2,3,4,5,6,7,8,9,10]

我的做法是 (start + array.len-1)/2 ?不過呢。。我做的時候也沒細(xì)想。。但是就直接pass test了。不過分析了一下,如果不specify end point為 array.len-1. 之后recursion 到一定時候會array index out of bounds

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容