给定一个乱序的数组,删除所有的重复元素,使得每个元素只出现一次,并且按照出现的次数从高到低进行排序,相同出现次数按照次出现顺序进行先后排序。
[输入描述:
一个数组
输出描述:
去重排序后的数组
示例1
输入:
1,3,3,3,2,4,4,4,5
输出:
3,4,1,2,5
备注:
数组大小不超过100
数组元素值大小不超过100
bool compare_map(const pair&a, const pair &b) { return a.second > b.second; }
vectorin{ 1,3,3,3,2,4,4,4,5 }; unordered_map a; //无序map,不会进行排列 for (auto temp : in) //记录序列元素个数 ++a[temp]; vector > vtMap; for (auto it = a.begin(); it != a.end(); it++) { vtMap.push_back(make_pair(it->first, it->second)); } stable_sort(vtMap.begin(), vtMap.end(), compare_map); //使用stable_sort,不改变原来的相对顺序,自定义比较大小 for (auto it = vtMap.begin(); it != vtMap.end(); ++it) { for (int i = 0; i < it->second; ++i) { cout << it->first << " "; } cout << endl; } for (auto it = vtMap.begin(); it != vtMap.end(); it++) { cout << it->first << 't'; }



