leetcode

Solution 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 };