1class Solution {2public:3vector<int> sortByBits(vector<int> &arr) {4int n = size(arr);5priority_queue<pair<int, int>> pq;67for (auto &x : arr) {8int count = 0;9int a = x;10while (a) {11count += a & 1;12a >>= 1;13}14pq.push({count, x});15}16n = n - 1;17while (!pq.empty()) {18arr[n--] = pq.top().second;19pq.pop();20}2122return arr;23}24};