解題思路:
使用遞迴遍歷二叉樹,求出每個二叉樹節點的高度並進行判斷。遞迴時若二叉樹節點沒有子節點,返回 0;若二叉樹左右節點的高度差的絕對值大於 1 ,說明樹已經不滿足平衡樹的條件,返回 -1 ;否則返回當前節點的最高高度(即左右節點高度中的最大值 + 1)。
通關**:
class
solution
int left =
height
(root-
>left)
;int right =
height
(root-
>right);if
(left ==-1
|| right ==-1
||abs
(left - right)
>1)
return
max(left, right)+1
;}bool
isbalanced
(treenode* root)
return
true;}
};
通關截圖: leetcode刷題記錄
我覺得每天來兩道,練習練習,再看看人家是怎麼優化的。1.給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。c 暴力求解,204ms,9.1m class solution for index,num in enumerate ...
LeetCode刷題記錄
動態規劃和貪心演算法的異同點 class solution throw newruntimeexception 時間複雜度 o n 2 對於每個元素,我們試圖通過遍歷陣列的其餘部分來尋找它所對應的目標元素,這將耗費 o n o n 的時間。因此時間複雜度為 o n 2 需要一種方法,尋找符合要求的元...
leetcode刷題記錄
工作之餘刷刷題排解下寂寞 1 面試題66.構建乘積陣列 解題思路 題目要求可以簡化為求陣列中任意乙個元素左右兩邊所有元素的乘積。偷懶就用了乙個套路,練習了p c c python class solution def constructarr self,a list int list int 除法是...