leetcode215.数组中的第K个最大元素

devtools/2025/1/22 17:13:35/

标签:计数排序

给定整数数组 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

提示:-10^{4} <= nums[i] <= 10^{4}

思路:采用计数排序思想,创建一个涵盖所有数字可能范围的数组temp,下标i即数字,temp[i]即i出现次数,从后遍历temp,遇到temp[i]=0跳过,遇到temp[i]!=0则k--,直到k===0则找到第k大元素;注意这里nums[i]数字对应到temp是nums[i]+10000,因为如果直接对应,不处理,出现负数无法直接对应到temp下标

public int findKthLargest(int[] nums, int k) {int [] temp=new int[200001];Arrays.fill(temp,0);for(int j=0;j<nums.length;j++)temp[nums[j]+10000]+=1;int a=temp.length-1;while(k>0){if(temp[a]==0)a--;else {temp[a]-=1;k--;}}return a-10000;}


http://www.ppmy.cn/devtools/152643.html

相关文章

【个人学习记录】软件开发生命周期(SDLC)是什么?

软件开发生命周期&#xff08;Software Development Life Cycle&#xff0c;SDLC&#xff09;是一个用于规划、创建、测试和部署信息系统的结构化过程。它包含以下主要阶段&#xff1a; 需求分析&#xff08;Requirements Analysis&#xff09; 收集并分析用户需求定义系统目标…

【大模型系列篇】Vanna-ai基于检索增强(RAG)的sql生成框架

简介 Vanna是基于检索增强(RAG)的sql生成框架 Vanna 使用一种称为 LLM&#xff08;大型语言模型&#xff09;的生成式人工智能。简而言之&#xff0c;这些模型是在大量数据&#xff08;包括一堆在线可用的 SQL 查询&#xff09;上进行训练的&#xff0c;并通过预测响应提示中…

18.Elasticsearch 7.15 Query DSL 之 bool查询

bool查询简介 布尔查询允许使用布尔逻辑&#xff08;AND, OR, NOT&#xff09;将多个查询子句组合成复杂查询&#xff0c;是Elasticsearch查询DSL的一部分。bool 查询映射到 Lucene BooleanQuery。它使用一个或多个布尔子句构建&#xff0c;这些布尔子句包括&#xff1a; 布尔…

开关电源基础

文章目录 线性电源与开关电源选用 开关稳压器脉宽调制简化的降压开关电源 开关电源类型输出电压分拓扑分 控制器与稳压器效率与 V o u t V_{out} Vout​ 同步与非同步隔离与非隔离非隔离式拓扑结构隔离式拓扑结构 线性电源与开关电源 线性稳压器就是我们通常说的LDO: 传输元件…

Kotlin语言的数据类型

Kotlin的基本数据类型 Kotlin 是一种现代化的编程语言&#xff0c;旨在提高代码的安全性和可维护性。与 Java 等传统语言相比&#xff0c;Kotlin 引入了许多新特性和改进&#xff0c;其中最基本的就是数据类型。本文将深入探讨 Kotlin 中的数据类型&#xff0c;包括它们的定义…

条件决策树(Conditional Decision Trees)算法详解

条件决策树(Conditional Decision Trees)算法详解 1. 引言 条件决策树是决策树的一个重要变体,它在标准决策树的基础上引入了条件约束,使得决策过程更加灵活和精确。本文将详细介绍条件决策树的原理、实现和应用。 2. 条件决策树原理 2.1 基本概念 条件决策树在传统决策…

Java 资源管理教程:掌握 close 方法、Cleaner 类与 Runtime.addShutdownHook

在 Java 编程中&#xff0c;高效地管理资源是至关重要的&#xff0c;特别是当你处理文件、数据库连接、网络连接等有限资源时。为了确保这些资源得到正确释放&#xff0c;Java 提供了多种机制。本教程将深入探讨 close 方法、Cleaner类以及 Runtime.addShutdownHook 方法&#…

StyleGAN - 基于样式的生成对抗网络

1. 背景与问题 随着生成对抗网络&#xff08;GAN&#xff09;的兴起&#xff0c;深度学习领域在图像生成方面取得了显著进展。传统的生成对抗网络&#xff08;如DCGAN&#xff09;为生成图像提供了强大的能力&#xff0c;但仍面临一些挑战&#xff0c;比如生成图像的质量、细节…