不愧是我!!!
class Solution {
public:
static bool compare(pair<int, int>a, pair<int, int>b)
{
if(a.second!=b.second)
{
return a.second < b.second;
}
else
{
return a.first < b.first;
}
}
vector<int> sortByBits(vector<int>& arr)
{
vector<pair<int, int>>temp;
vector<int>res;
for (int i = 0; i < arr.size(); i++)
{
int res = 0;
int tmp = arr[i];
while (arr[i])
{
res += arr[i] % 2;
arr[i] = arr[i] / 2;
}
temp.push_back({tmp,res});
}
sort(temp.begin(), temp.end(),compare);
for (int i = 0; i < temp.size(); i++)
{
res.push_back(temp[i].first);
}
return res;
}
};
可能用vector和sort会慢一些叭orz