JAVA练习80-数组中的第K个最大元素
创始人
2025-05-29 03:35:36

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

一、题目-数组中的第K个最大元素

1.题目描述

2.思路与代码

2.1 思路

2.2 代码

总结


前言

提示:这里可以添加本文要记录的大概内容:

3月16日练习内容


提示:以下是本篇文章正文内容,下面案例可供参考

一、题目-数组中的第K个最大元素

1.题目描述

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

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

你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。

示例 1:

输入: [3,2,1,5,6,4], k = 2
输出: 5

示例 2:

输入: [3,2,3,1,2,4,5,5,6], k = 4
输出: 4

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/kth-largest-element-in-an-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2.思路与代码

2.1 思路

1.方法1可以利用java内置排序算法对数组进行排序

2.将排完序的第length - k个数组输出

3.第2个方法可以利用最小堆

4.将数据放入最小堆,当数组里面的数据个数大于k时,输出元素即可

2.2 代码

代码如下(示例):

class Solution {public int findKthLargest(int[] nums, int k) {//第一种方法//直接调用内置Api对数组进行排序Arrays.sort(nums);//输入数组第k个元素return nums[nums.length - k];// //第二种方法,利用最小堆// PriorityQueue queue = new PriorityQueue<>();// //将数据放入最小堆// for(int num : nums){//     queue.add(num);//     if(queue.size() > k){//         queue.poll();//         //出队列//     }// }// //输出// return queue.peek();}
}

总结

提示:这里对文章进行总结:
 

相关内容

热门资讯

豆包手机重启限量发售!此前传被... 本文来源:时代周报 作者:何珊珊因AI接管功能迅速走红的豆包手机再次开放少量购买资格,此前它已接连深...
治不了阿尔兹海默还治不了你 今天看到复星医药准备花14亿把神药公司绿谷给买了,那乃悟作为绿谷的老朋友高低得来两句。绿谷现在最广为...
放弃控制权、索赔额大减36%!... 广州轻工工贸集团有限公司(下称“广州轻工集团”)放弃良品铺子了。12月16日,良品铺子发布公告称,广...
知名富翁疯狂代孕,吓坏美国法官... 近日,有媒体报道,一位中国亿万富翁在美国 “疯狂”代孕,吓得法官否了他的亲权申请。而这位富翁,正是多...
用12个问题,开启更有钱的20... 点击 “简七读财” ,发送消息“ 理财 ”小白轻松入门~晚上好,我是简七~上周我去了一趟普陀山,在...