zoukankan      html  css  js  c++  java
  • 关于最大最小的k个数的类型题总结

    返回最小的前k个数

    https://www.cnblogs.com/shaer/p/10486383.html

    返回最大的前k个数

    https://www.cnblogs.com/shaer/p/10424065.html

    1、大顶堆:每个节点的值都大于等于其左右孩子节点的值

         小顶堆:每个节点的值都小于等于其左右孩子节点的值

    2、选择最大的K个数

    用PriorityQueue默认是自然顺序排序,要选择最大的k个数,构造小顶堆,每次取数组中剩余数与堆顶的元素进行比较,如果新数比堆顶元素大,则删除堆顶元素,并添加这个新数到堆中。

    程序如下:程序是找到第k大的值,如果是最大的前k个数的值,定义一个集合保存就行。

    3、选择最小的K个数

    选择最小的k个数可以用冒泡排序,复杂度为O(n*k),有点高。 
    要选择最小的K个数使用大顶堆,每次取数组中剩余数与堆顶的元素进行比较,如果新数比堆顶元素小,则删除堆顶元素,并添加这个新数到堆中。

    要找前k个最小数,则构建大顶堆,要重写compare方法

    苟有恒,何必三更眠五更起;最无益,莫过一日暴十日寒。
  • 相关阅读:
    单例模式
    js事件
    oracle_to_excel
    jquery_2
    jquery_1
    4.linux 复制,删除,重命名
    一个tomcat下部署多个springboot项目
    3.centos7 安装oracle
    桥接模式
    组合模式
  • 原文地址:https://www.cnblogs.com/shaer/p/10486702.html
Copyright © 2011-2022 走看看