当前位置: 首页 > news >正文

Leetcode215. 数组中的第K个最大元素(HOT100)

链接

第一次:

class Solution {
public:int findKthLargest(vector<int>& nums, int k) {sort(nums.begin(),nums.end());int n = nums.size();return nums[n-k];}
};

这显然不能出现在面试中,因为面试官考察的不是这个。

正确的代码:

class Solution{public:int quick_sort(vector<int>& nums,int l,int r,int k){if(l==r)return nums[k];//会保证第k小的数一直在递归的区间中,那么当区间里只有一个数的时候,就一定是要找的数了。int x = nums[l],i = l-1,j = r+1;while(i<j){do i++;while(nums[i]>x);do j--;while(nums[j]<x);if(i<j)swap(nums[i],nums[j]);}if(k<=j)return quick_sort(nums,l,j,k);else return quick_sort(nums,j+1,r,k);}int findKthLargest(vector<int>& nums,int k){return quick_sort(nums,0,nums.size()-1,k-1);//第k大,比如第1大,其实是降序排序后,索引为0的元素,第2大,就是索引为1的元素。//此题如果改为,找出第k小的元素,那么只需将do while(翻转这里的符号即可);}
};

使用的是快速选择算法,本质还是快排。 

快速选择算法具体而言:

1.先找个目标值也就是题目中的x,将数组分到两边,此时x左边都<=x,右边>=x
2.查看k是否<=左边个数,如果小于说明在左侧内,左侧递归排序即可找到K。反之在右边
3.最终无限夹击找到K

相关文章:

Leetcode215. 数组中的第K个最大元素(HOT100)

链接 第一次&#xff1a; class Solution { public:int findKthLargest(vector<int>& nums, int k) {sort(nums.begin(),nums.end());int n nums.size();return nums[n-k];} }; 这显然不能出现在面试中&#xff0c;因为面试官考察的不是这个。 正确的代码&#…...

QT与嵌入式——搭建串口

1、源码 由于我需要不止一个串口来进行数据交互&#xff0c;所以简单的封装了一下 void Usb_Init(QString portName, QSerialPort *Port) {Port->setPortName(portName);Port->setBaudRate(QSerialPort::Baud115200); // 设置波特率&#xff0c;根据你的开发板配置修改…...

Shell编程-6

声明&#xff1a;学习视频来自b站up主 泷羽sec&#xff0c;如涉及侵权马上删除文章 感谢泷羽sec 团队的教学 视频地址&#xff1a;shell(6)if条件判断与for循环结构_哔哩哔哩_bilibili 一、if条件判断 在Shell脚本中&#xff0c;if语句用于基于条件的评估来执行不同的代码块。…...

使用 Postman 设置 Bearer Token 进行身份验证

学习笔记 1. 打开 Postman 并创建新请求 打开 Postman。 在左上角点击 按钮&#xff0c;创建一个新的请求。 2. 选择 HTTP 方法 在请求类型&#xff08;默认为 GET&#xff09;旁边的下拉菜单中&#xff0c;选择你需要的 HTTP 方法&#xff0c;如 POST、GET、PUT 等。 3…...

现在转前端怎么样?

互联网技术日新月异&#xff0c;软件开发者追逐技术浪潮的脚步从未停歇。在这个快速发展的行业中&#xff0c;如何规划自己的职业道路&#xff0c;选择合适的技术方向&#xff0c;成为了许多开发者面临的重要抉择。本文将围绕技术选择这个话题&#xff0c;分享一些深入的思考和…...

【算法一周目】滑动窗口(1)

目录 长度最小的子数组 解题思路 代码实现 无重复字符的最大字串 解题思路 代码实现 最大连续1的个数l l l 解题思路 代码实现 将x减到0的最小操作数 解题思路 代码实现 长度最小的子数组 题目链接&#xff1a;209. 长度最小的子数组题目描述&#xff1a; 给定一个…...

React Native 基础

React 的核心概念 定义函数式组件 import组件 要定义一个Cat组件,第一步要使用 import 语句来引入React以及React Native的 Text 组件: import React from react; import { Text } from react-native; 定义函数作为组件 const CatApp = () => {}; 渲染Text组件...

【C++笔记】list使用详解及模拟实现

前言 各位读者朋友们大家好&#xff01;上期我们讲了vector的使用以及底层的模拟实现&#xff0c;这期我们来讲list。 目录 前言一. list的介绍及使用1.1 list的介绍1.2 list的使用1.2.1 list的构造1.2.2 list iterator的使用1.2.3 list capacity1.2.4 list element access1.…...

【机器学习】机器学习中用到的高等数学知识-7.信息论 (Information Theory)

熵 (Entropy)&#xff1a;用于评估信息的随机性&#xff0c;常用于决策树和聚类算法。交叉熵 (Cross-Entropy)&#xff1a;用于衡量两个概率分布之间的差异&#xff0c;在分类问题中常用。 信息论作为处理信息量和信息传输的数学理论&#xff0c;在机器学习中具有广泛的应用。…...

《现代制造技术与装备》是什么级别的期刊?是正规期刊吗?能评职称吗?

​问题解答 问&#xff1a;《现代制造技术与装备》是不是核心期刊&#xff1f; 答&#xff1a;不是&#xff0c;是知网收录的第二批认定学术期刊。 问&#xff1a;《现代制造技术与装备》级别&#xff1f; 答&#xff1a;省级。主管单位&#xff1a;齐鲁工业大学&#xff0…...

09 - Clickhouse的SQL操作

目录 1、Insert 1.1、标准 1.2、从表到表的插入 2、Update和Delete 2.1、删除操作 2.2、修改操作 3、查询操作 3.1、with rollup&#xff1a;从右至左去掉维度进行小计 3.2、with cube : 从右至左去掉维度进行小计&#xff0c;再从左至右去掉维度进行小计 3.3、with …...

如何解决pdf.js跨域从url动态加载pdf文档

摘要 当我们想用PDF.js从URL加载文档时&#xff0c;将会因遇到跨域问题而中断&#xff0c;且是因为会触发了PDF.js和浏览器的双重CORS block&#xff0c;这篇文章将会介绍&#xff1a;①如何禁用pdf.js的跨域&#xff1f;②如何绕过浏览器的CORS加载URL文件&#xff1f;②如何使…...

深入理解TTY体系:设备节点与驱动程序框架详解

往期内容 本专栏往期内容&#xff1a;Uart子系统 UART串口硬件介绍 interrupt子系统专栏&#xff1a; 专栏地址&#xff1a;interrupt子系统Linux 链式与层级中断控制器讲解&#xff1a;原理与驱动开发 – 末片&#xff0c;有专栏内容观看顺序 pinctrl和gpio子系统专栏&#xf…...

库的操作(MySQL)

1.创建数据库 语法&#xff1a; CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] ...] create_specification:[DEFAULT] CHARACTER SET charset_name[DEFAULT] COLLATE collation_name说明&#xff1a; 大写的表示关键字 [ ] 是可…...

在 for 循环中,JVM可能会将 arr.length 提升到循环外部,仅计算一次。可能会将如何解释 详解

在 Java 的 for 循环中&#xff0c;JVM 有能力进行优化&#xff0c;将 arr.length 的访问提升到循环外部&#xff0c;避免每次迭代都重新计算 arr.length。这种优化主要是由于 JVM 的 即时编译器&#xff08;JIT&#xff09; 和 逃逸分析&#xff08;Escape Analysis&#xff0…...

回溯--数据在内存中的存储:整数、大小端和浮点数的深度解析

目录 引言 1. 整数在内存中的存储 1.1 原码、反码和补码 1.2 为什么使用补码&#xff1f; 1.3 示例代码&#xff1a;整数的存储 2. 大小端字节序和字节序判断 2.1 什么是大端和小端&#xff1f; 2.2 为什么会有大端和小端之分&#xff1f; 2.3 字节序的判断小程序 2.…...

第二十二章 Spring之假如让你来写AOP——Target Object(目标对象)篇

Spring源码阅读目录 第一部分——IOC篇 第一章 Spring之最熟悉的陌生人——IOC 第二章 Spring之假如让你来写IOC容器——加载资源篇 第三章 Spring之假如让你来写IOC容器——解析配置文件篇 第四章 Spring之假如让你来写IOC容器——XML配置文件篇 第五章 Spring之假如让你来写…...

探索设计模式:原型模式

设计模式之原型模式 &#x1f9d0;1. 概念&#x1f3af;2. 原型模式的作用&#x1f4e6;3. 实现1. 定义原型接口2. 定义具体的原型类3. 定义客户端4. 结果 &#x1f4f0; 4. 应用场景&#x1f50d;5. 深拷贝和浅拷贝 在面向对象编程中&#xff0c;设计模式是一种通用的解决方案…...

NLP论文速读(EMNLP 2023)|工具增强的思维链推理

论文速读|ChatCoT: Tool-Augmented Chain-of-Thought Reasoning on Chat-based Large Language Models 论文信息&#xff1a; 简介&#xff1a; 本文背景是关于大型语言模型&#xff08;LLMs&#xff09;在复杂推理任务中的表现。尽管LLMs在多种评估基准测试中取得了优异的成绩…...

JVM垃圾回收详解.②

空间分配担保 空间分配担保是为了确保在 Minor GC 之前老年代本身还有容纳新生代所有对象的剩余空间。 《深入理解 Java 虚拟机》第三章对于空间分配担保的描述如下&#xff1a; JDK 6 Update 24 之前&#xff0c;在发生 Minor GC 之前&#xff0c;虚拟机必须先检查老年代最大…...

Agent设计模式全景图——从ReAct到Multi-Agent的完整知识体系

Agent概念在2023年就已出现&#xff0c;2024年是框架快速迭代的一年。到了2026年&#xff0c;Agent设计模式逐渐成熟&#xff0c;成为工程实践的关键。 GitHub上关于Agent的开源项目突破10万个&#xff0c;LangChain、LangGraph、AutoGen、CrewAI……框架层出不穷。但翻遍这些文…...

别再只点保存了!QGIS工程文件.QGZ和.QGS到底怎么选?附XML结构详解

QGIS工程文件格式深度解析&#xff1a;.QGZ与.QGS的选择策略与XML实战指南 当你在QGIS中完成一幅精心设计的地图&#xff0c;点击保存按钮时&#xff0c;系统弹出的格式选择对话框可能让你陷入短暂的犹豫——该选择.QGZ还是.QGS&#xff1f;这个看似简单的选择背后&#xff0c;…...

题目五:抽象类 + 接口 混合实现

编程要求&#xff1a;抽象类 Machine&#xff1a;抽象方法 work()&#xff0c;普通方法 start()&#xff1b;接口 Clean&#xff1a;抽象方法 clean()&#xff1b;类 Robot继承抽象类 Machine 实现接口 Clean&#xff1b;实现所有未实现的方法&#xff1b;测试创建机器人对象&…...

用PyTorch复现DKT模型:从Assistment数据集处理到LSTM训练全流程(附完整代码)

用PyTorch构建DKT模型&#xff1a;从数据预处理到LSTM实战全解析 在教育技术领域&#xff0c;追踪学生知识掌握程度一直是个核心挑战。想象一下&#xff0c;当学生在在线学习平台上完成一系列数学题时&#xff0c;系统如何预测他们下一步可能遇到的困难&#xff1f;这正是深度知…...

Hive内部表 vs 外部表:选错一次,数据全丢?结合HDFS路径详解核心区别与选型指南

Hive内部表与外部表&#xff1a;数据安全与架构设计的深度抉择 在数据仓库与大数据分析领域&#xff0c;Hive作为构建在Hadoop之上的数据仓库工具&#xff0c;其表类型的选择往往被初学者视为简单的语法差异。然而&#xff0c;当生产环境中TB级的数据因为一个DROP TABLE命令而永…...

FreeRTOS在RISC-V上的第一个main.c:从创建任务到理解Hook函数的完整流程

FreeRTOS在RISC-V上的第一个main.c&#xff1a;从创建任务到理解Hook函数的完整流程 当你在RISC-V平台上第一次打开main.c文件准备编写FreeRTOS应用时&#xff0c;可能会被那些看似神秘的函数和配置选项所困扰。这篇文章将带你从零开始&#xff0c;逐步构建一个完整的FreeRTOS应…...

碧蓝航线脚本补丁Perseus:原生库的无偏移皮肤解锁技术实现

碧蓝航线脚本补丁Perseus&#xff1a;原生库的无偏移皮肤解锁技术实现 【免费下载链接】Perseus Azur Lane scripts patcher. 项目地址: https://gitcode.com/gh_mirrors/pers/Perseus 在移动游戏修改领域&#xff0c;实现版本兼容性一直是技术挑战的核心。Perseus项目通…...

别再乱试了!html2canvas跨域截图报CORS错,我靠改一行源码搞定

突破html2canvas跨域截图困境&#xff1a;从源码层面解决CORS问题的实战指南 前端开发者在处理网页截图功能时&#xff0c;html2canvas无疑是最常用的工具之一。然而&#xff0c;当涉及到跨域资源时&#xff0c;这个看似简单的任务往往会演变成一场噩梦。即使按照官方文档设置…...

010 传感器与数据采集基础:从模拟到数字

010 传感器与数据采集基础:从模拟到数字 一个让我熬夜到凌晨三点的ADC问题 去年做的一个工业振动监测项目,传感器输出0-5V模拟信号,STM32F4内置ADC采集,理论上12位分辨率,4096个码值对应0-3.3V。结果数据一出来,波形像被狗啃过——毛刺、跳变、偶尔还出现负值。用示波器…...

从IR2184到全桥驱动:搞懂H桥电路防短路与死区设置(附电路图分析)

从IR2184到全桥驱动&#xff1a;H桥电路防短路与死区设置的工程实践 在电机控制系统中&#xff0c;H桥电路的设计可靠性直接决定了整个驱动方案的成败。许多工程师在初次设计基于IR2184的全桥驱动时&#xff0c;往往会被"上下桥臂直通"问题困扰——这种短路状态能在微…...