int cnt_1[10010] = {0};
class Solution {
public:
vector<int> sortByBits(vector<int>& arr) {
for(int i = 1; i < 10010; i++)
{
cnt_1[i] = cnt_1[i>>1] + (i&1);
}
vector<pair<int,int>>nums;
for(int i = 0; i < arr.size(); i++)
{
nums.push_back(make_pair(cnt_1[arr[i]], arr[i]));
}
sort(nums.begin(), nums.end());
vector<int>res;
for(auto x: nums)
{
res.push_back(x.second);
}
return res;
}
};