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

总结

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

相关内容

热门资讯

重大通报“来来淮北麻将怎么提高... 您好:来来淮北麻将这款游戏可以开挂,确实是有挂的,需要软件加微信【69174242】,很多玩家在来来...
玩家必看“天天云南麻将其实有挂... 您好:天天云南麻将这款游戏可以开挂,确实是有挂的,需要软件加微信【5902455】,很多玩家在天天云...
分享实测“橘子大厅到底真的有透... 您好:橘子大厅这款游戏可以开挂,确实是有挂的,需要软件加微信【5902455】,很多玩家在橘子大厅这...
重大通报“羊城牌乐汇有没有透视... 您好:羊城牌乐汇这款游戏可以开挂,确实是有挂的,需要软件加微信【5902455】,很多玩家在羊城牌乐...
今日重大通报“ 乐星跑胡子辅助... 乐星跑胡子这个游戏其实有挂的,确实是有挂的,需要了解加客服微信:【3716361】很多玩家在这款游戏...