以下是一个按照元素出现频率对数组进行排序的示例代码:
def frequencySort(nums):
# 统计元素出现的频率
freq = {}
for num in nums:
freq[num] = freq.get(num, 0) + 1
# 根据频率对元素进行排序
sorted_nums = sorted(nums, key=lambda x: (freq[x], -x))
return sorted_nums
# 测试示例
nums = [1, 1, 2, 2, 2, 3]
sorted_nums = frequencySort(nums)
print(sorted_nums) # 输出: [3, 1, 1, 2, 2, 2]
在上面的代码中,首先使用一个字典 freq
来统计每个元素出现的频率。然后,使用 sorted()
函数对数组 nums
进行排序,排序的关键是使用了 key
参数来指定排序的规则。这里的规则是先根据元素的频率排序,频率相同的元素按照从大到小的顺序排序。最后返回排序后的数组。
注意,这里我们使用了 lambda
表达式作为 key
参数的值,它定义了一个匿名函数,用来获取元素的频率并进行排序。
下一篇:按照元素出现频率排序数组