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();}
}

总结

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

相关内容

热门资讯

今日分享.新老夫子拼三张有没有... 今日分享.新老夫子拼三张有没有挂.曝光开挂猫腻!您好:新老夫子拼三张这款游戏可以开挂,确实是有挂的,...
今日资讯.皇豪互娱真的有挂吗.... 今日资讯.皇豪互娱真的有挂吗.(透视曝光猫腻)亲,皇豪互娱这个游戏其实有挂的,确实是有挂的,需要了解...
重磅消息.微乐河北麻将可以开挂... 重磅消息.微乐河北麻将可以开挂吗.(曝光开挂猫腻)您好:微乐河北麻将这款游戏可以开挂,确实是有挂的,...
实测推荐.欢乐斗地主掼蛋怎么装... 实测推荐.欢乐斗地主掼蛋怎么装挂.(辅助神器下载)亲.欢乐斗地主掼蛋这款游戏是可以开挂的,确实是有挂...
实测分享.琼崖麻将有没有挂.(... 您好:琼崖麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9951342】很多玩家在这款游戏...