力扣 215 .数组中的第K个最大元素

文章目录

  • 题目介绍
  • 题解

题目介绍

在这里插入图片描述

题解

法一:基于快速排序的选择方法

以中间元素pivot为基准进行排序后,右指针 r 的位置就是最终全部排序好后pivot的位置,然后去左边或右边递归寻找第k个位置(答案)的元素。

代码如下:

class Solution {public int findKthLargest(int[] nums, int k) {int n = nums.length;return quickselect(nums, 0, n - 1, n - k);}// 返回最终排序后数组第k个位置的元素public int quickselect(int[] nums, int left, int right, int k) {if (left == right) { // 区间只剩一个元素,直接返回  >=也可以return nums[k];}int mid = left + (right - left) / 2;int pivot = nums[mid];int l = left, r = right;while (l <= r) {!!!不能用<=,是为了防止中轴值(pivot)被多次交换while (nums[l] < pivot)l++; while (nums[r] > pivot)r--; if (l <= r) {swap(nums, l, r); l++;r--;}}// 递归处理左半部分或右半部分if (k <= r) {return quickselect(nums, left, r, k); // 目标在左半部分} else {return quickselect(nums, l, right, k); // 目标在右半部分}}public void swap(int[] nums, int i, int j) {int tmp = nums[i];nums[i] = nums[j];nums[j] = tmp;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/diannao/84813.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CentOS 7.0重置root密码

文章目录 版本&#xff1a;CentOS 7.0内核版本&#xff1a;CentOS Linux, with Linux 3.10.0-123.el7.x86_64 服务器重启后&#xff0c;等待进入上述页面&#xff0c;按⬆⬇键&#xff0c;中断正常启动。在此页面按E&#xff0c;进入编辑模式 继续按⬇&#xff0c;找到linux16…

Linux之高效文本编辑利器 —— vim

目录 一、vim的基本概念 二、Vim 的三种基本模式 1. 命令模式&#xff08;Command Mode&#xff09; 2. 插入模式&#xff08;Insert Mode&#xff09; 3. 底行模式&#xff08;Last Line Mode&#xff09; 模式切换方法 IDE例子&#xff1a; 三、vim的基本操作 进入vim…

【STM32】HAL库 之 CAN 开发指南

基于stm32 f407vet6芯片 使用hal库开发 can 简单讲解一下can的基础使用 CubeMX配置 这里打开CAN1 并且设置好波特率和NVIC相关的配置 波特率使用波特率计算器软件 使用采样率最高的这段 填入 得到波特率1M bit/s 然后编写代码 环形缓冲区 #include "driver_buffer.h&qu…

《Scientific Reports撤稿门技术节分析》——从图像篡改检测到学术伦理重建的技术透视

2023年以来&#xff0c;《Scientific Reports》等开放获取期刊频繁曝出大规模撤稿事件&#xff0c;涉及数据造假、图像重复、AI生成内容篡改等技术性学术不端行为。本文以技术视角切入&#xff0c;系统分析撤稿事件背后的技术动因、检测手段漏洞、学术出版体系的技术短板及应对…

Client请求Grpc服务报错

现象&#xff1a;err: rpc error: code Unimplemented desc 背景&#xff1a;调用链路A->B->C&#xff0c;A是一个Http协议的接口&#xff0c;B也是一个Http协议的接口&#xff0c; 但C是一个Grpc协议的接口。 解决思路&#xff1a;查看C服务对应的proto&#xff0c;比…

机器学习课程设计报告 —— 基于口红数据集的情感分析

目录 一、课程设计目的 二、数据预处理及分析 2.1 数据预处理 2.2 数据分析 三、特征选择 3.1 特征选择的重要性 3.2 如何进行特征选择 3.3 特征选择的依据 3.4 数据集的划分 四、模型训练与模型评估 4.1 所有算法模型不调参 4.2 K-近邻分类模型 4.3 GaussianNB模…

Flutter 实现6个验收码输入框

开箱即用&#xff0c;初始化时就唤起键盘&#xff0c;并选中第一个 import package:flutter/material.dart;import dart:async; // 引入 Timer 类class VerificationCode extends StatefulWidget {final String phoneNumber;const VerificationCode({super.key, required this.…

如何查看服务器有几张GPU

要查看服务器上有多少张 GPU&#xff0c;你可以使用以下几种方法&#xff1a; 1.1 使用 nvidia-smi工具&#xff08;针对 NVIDIA GPU&#xff09;&#xff1a; 如果你的服务器上安装了 NVIDIA GPU 驱动程序&#xff0c;那么可以使用 nvidia-smi 命令查看详细的 GPU 信息。 n…

3099. 哈沙德数

​题目来源&#xff1a; LeetCode题目&#xff1a;3099. 哈沙德数 - 力扣&#xff08;LeetCode&#xff09; 解题思路&#xff1a; 按要求求和判断即可。 解题代码&#xff1a; #python3 class Solution:def sumOfTheDigitsOfHarshadNumber(self, x: int) -> int:sumDigi…

数字化回归本质:第一性原理驱动的制造业转型与AI+云PLM系统实践

2014年&#xff0c;埃隆马斯克在南加州大学商学院的毕业演讲上&#xff0c;留下了一场5分钟的精彩分享&#xff0c;他将自己对工作和人生的思考总结为五个要点&#xff0c;其中一点说到了他的决策方式&#xff1a; “也许你听我说过&#xff0c;要从物理学的角度思考问题&…

仿DeepSeek AI问答系统完整版(带RAG本地知识库+联网搜索+深度思考) +springboot+vue3

今天教大家如何设计一个企业级的 deepseek问答 一样的系统 , 基于目前主流的技术&#xff1a;前端vue3&#xff0c;后端springboot。同时还带来的项目的部署教程。 系统的核心功能 1. 支持本地上传文档知识库&#xff0c;RAG技术。 支持的文档有txt&#xff0c;doc&#xff0c…

27、请求处理-【源码分析】-怎么改变默认的_method

27、请求处理-【源码分析】-怎么改变默认的_method 要改变 Spring Boot 中默认的 _method 参数&#xff0c;可以通过以下步骤实现&#xff1a; #### 原理分析 Spring Boot 中默认的 HiddenHttpMethodFilter 用于将表单中的 _method 参数值映射为实际的 HTTP 方法&#xff08;如…

欧拉角转为旋转矩阵

外旋是固定坐标系&#xff0c;内旋是动态坐标系。外旋和内旋具有等价性。 固定坐标系依次绕xyz轴旋转&#xff0c;旋转矩阵 动态坐标系依次绕zyx轴旋转&#xff0c;旋转矩阵 numpy和scipy计算对比 import numpy as np from numpy import sin, cos, pi # 抑制科学计数法&#…

【AI学习笔记】Coze平台实现生成小红书热门多图笔记

背景前摇&原视频教程&#xff1a; 最近总是在小红书上刷到多图组成的养生小妙招、效率提升小tips、退休奶奶疗愈语录等等这样的图文笔记&#xff0c;而且人物图像一眼就是AI画的。 当时我以为这个排版和文字是人工的&#xff0c;就让AI保持角色一致性画了下图&#xff0c;…

如何选择自动化编程平台

从事自动化行业的工作者都知道&#xff0c;做PLC编程需要PLC编程软件&#xff0c;做HMI可视化需要HMI编程软件&#xff0c;做SCADA需要SCADA编程软件&#xff0c;做DCS需要DCS软件&#xff0c;做仿真调试需要仿真软件。这些软件有国外的、国内的&#xff0c;有传统自动化厂商开…

Bug 背后的隐藏剧情

Bug 背后的隐藏剧情 flyfish 1. 「bug」&#xff1a;70多年前那只被拍进史书的飞蛾 故事原型&#xff1a;1947年哈佛实验室的「昆虫命案」 1947年的计算机长啥样&#xff1f;像一间教室那么大&#xff0c;塞满了几万根继电器&#xff08;类似老式开关&#xff09;&#xff…

如何将通话记录从Android传输到Android

“如何将通话记录从 Android 转移到 Android&#xff1f;我换了一部新的 Android 手机&#xff0c;想要将通话记录复制到其中。”您需要将通话记录从 Android 传输到 Android 是一种常见的情况&#xff0c;因为通话记录是手机上最重要的数据之一。幸运的是&#xff0c;如果您从…

Android 云手机横屏模式下真机键盘遮挡输入框问题处理

一、背景 打开横屏应用,点击云机EditText输入框,输入框被键盘遮挡,如下图&#xff1a; 未打开键盘状态: 点击第二个输入框,键盘遮挡了输入框&#xff1a; 二、解决方案&#xff08;推荐第三中方案,博主采用的也是第三种方案&#xff09; 博主这里整理了三种方案&#xff1a;…

进程IO之 进程

一、进程相关概念 1.什么是进程 程序&#xff1a;静态的&#xff0c;编译好的可执行文件&#xff0c;存放在磁盘中的指令和数据的集合 进程&#xff1a;动态的&#xff0c;是程序的一次执行过程&#xff0c;是独立的可调度的任务 2.进程的特点 &#xff08;1&#xff09;对…

Condition源码解读(二)

本章我们继续将Condition的最后一个方法signal方法&#xff0c;如果前面没有看过的可以点击LockSupport与Condition解析来看看Condition解读的前半部分。 signal方法&#xff1a; public final void signal() {if (!AbstractQueuedLongSynchronizer.this.isHeldExclusively())…