leetcodeSolution to some Leetcode problems written in C++ |
git clone git://git.dimitrijedobrota.com/leetcode.git |
Log | Files | Refs | README | LICENSE |
2471.cpp (832B)
0 class Solution {
1 public:
2 int minimumOperations(TreeNode *root) {
3 queue<TreeNode *> q;
4 q.push(root);
5 int res = 0;
6 while (!q.empty()) {
7 vector<int> lvl, idx(q.size());
8 for (int k = q.size(); k > 0; k--) {
9 TreeNode *root = q.front();
10 q.pop();
11 lvl.push_back(root->val);
12 if (root->left) q.push(root->left);
13 if (root->right) q.push(root->right);
14 }
15 iota(begin(idx), end(idx), 0);
16 sort(begin(idx), end(idx), [&](const int i, const int j) { return lvl[i] < lvl[j]; });
17 for (int i = 0; i < idx.size(); i++) {
18 for (; idx[i] != i; res++)
19 swap(idx[i], idx[idx[i]]);
20 }
21 }
22 return res;
23 }
24 };