2023-06-15 Daily Challenge
Today I have done leetcode's June LeetCoding Challenge with cpp
.
June LeetCoding Challenge 15
Description
Maximum Level Sum of a Binary Tree
Given the root
of a binary tree, the level of its root is 1
, the level of its children is 2
, and so on.
Return the smallest level x
such that the sum of all the values of nodes at level x
is maximal.
Example 1:
Input: root = [1,7,0,7,-8,null,null] Output: 2 Explanation: Level 1 sum = 1. Level 2 sum = 7 + 0 = 7. Level 3 sum = 7 + -8 = -1. So we return the level with the maximum sum which is level 2.
Example 2:
Input: root = [989,null,10250,98693,-89388,null,null,null,-32127] Output: 2
Constraints:
- The number of nodes in the tree is in the range
[1, 104]
. -105 <= Node.val <= 105
Solution
auto speedup = [](){
cin.tie(nullptr);
cout.tie(nullptr);
ios::sync_with_stdio(false);
return 0;
}();
class Solution {
public:
int maxLevelSum(TreeNode* root) {
int answer;
int sum = INT_MIN;
queue<TreeNode*> q;
q.push(root);
int level = 0;
while(q.size()) {
int sz = q.size();
int currentSum = 0;
level += 1;
for(int _ = 0; _ < sz; ++_) {
auto current = q.front();
q.pop();
currentSum += current->val;
if(current->left) q.push(current->left);
if(current->right) q.push(current->right);
}
if(currentSum > sum) {
sum = currentSum;
answer = level;
}
}
return answer;
}
};
// Accepted
// 40/40 cases passed (184 ms)
// Your runtime beats 95.85 % of cpp submissions
// Your memory usage beats 13.54 % of cpp submissions (107.5 MB)