当前位置:   article > 正文

小米OJ Python实现出现频率最高的前 K 个元素_python出现频率最高的k个

python出现频率最高的k个

描述

有一个不为空且仅包含正整数的数组,找出其中出现频率最高的前 K 个数,时间复杂度必须在 O(n log n) 以内。

输入

一行数据包括两部分,一个正整数数组(数字间 ',' 分隔)和一个正整数 K (1 ≤ K ≤ 数组长度),数组和 K 之间有一个空格。

输出

输出包含前 K 个出现频率最高的数(出现频率相同时,较小的数在前),用 ', ' 分隔,保证升序排列。

输入样例

1,1,1,2,2,3 2

输出样例

1,2
  1. import sys
  2. from collections import Counter
  3. result = []
  4. for line in sys.stdin:
  5. data, num = line.strip().split()
  6. num = int(num)
  7. data = list(map(int,data.strip().split(',')))
  8. data = Counter(data)
  9. data = sorted(data.items(), key=lambda x: (x[1], -x[0]), reverse=True) # 多键值排序
  10. temp = []
  11. for i in range(num):
  12. temp.append(data[i][0])
  13. temp = ",".join(map(str, temp))
  14. result.append(temp)
  15. print("\n".join(map(str,result)))

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/72820
推荐阅读
相关标签
  

闽ICP备14008679号