leetcode

Solution to some Leetcode problems written in C++
git clone git://git.dimitrijedobrota.com/leetcode.git
Log | Files | Refs | README | LICENSE

2583.cpp (686B)


0 class Solution {
1 public:
2 long long kthLargestLevelSum(const TreeNode *root, int k) const {
3 priority_queue<long long, vector<long long>, greater<>> pq;
4 queue<const TreeNode *> q;
6 for (q.emplace(root); !q.empty();) {
7 long long sum = 0;
8 for (int k = size(q); k > 0; k--) {
9 const auto root = q.front();
10 q.pop();
11 sum += root->val;
13 if (root->left) q.push(root->left);
14 if (root->right) q.push(root->right);
15 }
17 pq.emplace(sum);
18 if (size(pq) > k) pq.pop();
19 }
21 return size(pq) == k ? pq.top() : -1;
22 }
23 };