題目:
給你乙個二叉樹的根節點 root。設根節點位於二叉樹的第 1 層,而根節點的子節點位於第 2 層,依此類推。
請你找出層內元素之和 最大 的那幾層(可能只有一層)的層號,並返回其中 最小 的那個。
1
/ \
70/ \
7-8
輸入:[1,7,0,7,-8,null,null]
輸出:2
解釋:第 1 層各元素之和為 1,
第 2 層各元素之和為 7 + 0 = 7,
第 3 層各元素之和為 7 + -8 = -1,
所以我們返回第 2 層的層號,它的層內元素之和最大。
一開始我想的是用遞迴算出每一層的和,在遞迴的同時把和最小的層數給算出來,顯然我有點失敗了
最後用的是遞迴算出和,然後暴力求最小值
上**:
class
solution
;int maxnum=int_min,t=0;
intmaxlevelsum
(treenode* root)
}return t+1;
}void
bfs(treenode *root,
int depin)
};
leetcode1161 最大層內元素和
給你乙個二叉樹的根節點 root。設根節點位於二叉樹的第 1 層,而根節點的子節點位於第 2 層,依此類推。請你找出層內元素之和 最大 的那幾層 可能只有一層 的層號,並返回其中 最小 的那個。示例 輸入 1,7,0,7,8,null,null 輸出 2 解釋 第 1 層各元素之和為 1,第 2 層...
最大層內元素和
這裡我們可以採用很多解法,比如單佇列 雙佇列 但更多的,我覺得採用遞迴思想,才是比較考驗思維功底的。definition for a binary tree node.type treenode struct func maxlevelsum root treenode int queue tree...
c語言 運用遞迴演算法求出陣列中的最大值
思考題 如何用遞迴求出陣列中的最大項 解 我們很簡單的把乙個擁有n個數字的int型別的陣列看成兩個部分,前n 1項和第n項 在進行比較大小的時候,就直接拿前n 1項和第n項進行比較 如果第n項比較大,就return出第n項 如果前n 1項比第n項要大,就用遞迴的方法return出前n 1項的最大值 ...