出现次数最多的K个
解题步骤:
- 把所有的数据存到map里
- 构造K个的大根堆
- 输出大根堆
第K大的数
解题步骤:
方法一:对所有元素进行排序,之后取出前K个元素,不提倡使用
方法二:只需要对前K个元素排序,不需要对N-K个元素进行排序,不提倡使用
方法三:利用hash保存数组中元素Si出现的次数,利用计数排序的思想,线性从大到小扫描过程中,前面有k-1个数则为第k大数,
最大/最小的前K个数
解题步骤:
- 挑出前K个树组成大根堆/小根堆
- 从K+1到N与大根堆最大/小的树比较,如果大/小就替换他
- 输出大根堆
网友评论