按频率排序并保持顺序
Rust
Hard
sorting
任务 «按频率排序并保持顺序»
给定一个整数数组。需要按照元素出现频率的降序对其进行排序。如果两个元素出现的次数相同,则它们应按照在原始数组中首次出现的顺序排列。要求实现时间复杂度为 O(n log n) 且使用额外空间 O(n) 的排序算法。
输入格式
第一行包含一个整数 n (1 ≤ n ≤ 10^5)。第二行包含 n 个由空格分隔的整数。
输出格式
输出 n 个以空格分隔的整数——排序后的数组。
示例
示例 1
输入
3
3 2 1
输出
3 2 1
main.rs