• 力扣 215. 数组中的第K个最大元素


    题目

    给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。

    请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。

    Java题解

    1. //时间复杂度O(nlogk)
    2. class Solution {
    3. public int findKthLargest(int[] nums, int k) {
    4. //PriorityQueue heap=new PriorityQueue((n1,n2)->n1-n2);//小根堆
    5. PriorityQueue heap=new PriorityQueue();//默认小根堆
    6. for(int n:nums){
    7. heap.add(n);//队尾添加元素
    8. if(heap.size()>k)//返回长度大于k时,把最小值(即根结点)删掉,保留当前最大的k个结点
    9. heap.poll();//取出队首元素,(删除)
    10. }
    11. return heap.poll();
    12. }
    13. }

    Java知识点

     PriorityQueue详解 可以处理动态数据流

    堆(Heap)分为小根堆和大根堆两种。Min-heap: 父节点的值小于或等于子节点的值;Max-heap: 父节点的值大于或等于子节点的值。

    方法功能
    add(Element e)队尾添加元素
    clear()清空整个列队
    contains(Object o)检查是否包含当前参数元素,返回布尔类型
    offer(E e)添加元素
    peek()访问队首元素(不删除)
    poll()取出队首元素,(删除)
    remove(Object o)根据value删除指定元素
    size()返回长度
    isEmpty()判断队列是否为空,返回布尔类型

    PriorityQueue默认小根堆

    1. PriorityQueue heap = new PriorityQueue<>(new Comparator() {
    2. @Override
    3. public int compare(Integer o1, Integer o2) {
    4. return o1 - o2;
    5. }
    6. });

    PriorityQueue实现大根堆

    方法一:重写compare方法

    1. PriorityQueue MaxHeap=new PriorityQueue<>(new Comparator() {
    2. @Override
    3. public int compare(Integer o1, Integer o2) {
    4. return o2-o1;
    5. }
    6. });

    方法二:lambda表达式

    // 1. 不需要参数,返回值为 5  
    () -> 5  
      
    // 2. 接收一个参数(数字类型),返回其2倍的值  
    x -> 2 * x  
      
    // 3. 接受2个参数(数字),并返回他们的差值  
    (x, y) -> x – y  
      
    // 4. 接收2个int型整数,返回他们的和  
    (int x, int y) -> x + y  
      
    // 5. 接受一个 string 对象,并在控制台打印,不返回任何值(看起来像是返回void)  
    (String s) -> System.out.print(s)
    PriorityQueue MaxHeap=new PriorityQueue((n1,n2)->n2-n1);

  • 相关阅读:
    K8s的Pod详细解析
    QT MV\MVC结构
    继承构造函数
    【博学谷学习记录】超强总结,用心分享|架构师-设计模式 1
    I2C总线与E²PROM
    portswigger网站sqli lab答案
    uniapp 集成蓝牙打印功能(个人测试佳博打印机)
    共空间模式算法(CSP)
    【办公类-16-05-02】“大班游戏活动室排班表——领导版8周”(python 排班表系列)
    资源有限的大型语言模型的全参数微调
  • 原文地址:https://blog.csdn.net/m0_55955474/article/details/126029233