题目要求:给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。
代码及思路
使用小根堆来解决,遍历数组,将元素放入堆中
当堆的大小大于k时,将堆顶元素弹出
最终堆中元素是数组中最大的k个元素,且堆顶是其中最小的
代码
class Solution {
public int findKthLargest(int[] nums, int k){
PriorityQueue<Integer> minHeap = new PriorityQueue<>();
for(int num :nums){
minHeap.add(num);
if(minHeap.size()>k){
minHeap.poll();}}return minHeap.peek();}}
Aiseesoft Mac Video Converter Ultimate是一款视频转换与编辑软件,以其强大的功能和简单易用的操作界面赢得了广泛好评。该软件不仅支持多种视频格式的转换,还集成了丰富的视频编辑功能,满足了用户多样化的视频处理需求。
核心功能概述 视频…
1. 查看项目的启动类
Spring Boot: 通常有一个主类,包含 SpringBootApplication 注解,并且有一个 main 方法来启动应用程序。
SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Appli…