[Leetcode] 215. Kth Largest Element in an Array

别再瞎调了!手把手教你搞定STM32步进电机PID速度环(附完整代码与比例系数详解) 本文详细解析了STM32步进电机PID速度环的完整实现过程,从算法输出到脉冲频率的转换链路,重点讲解了比例系数的确定方法及系统标定实验。通过完整的代码示例和调试技巧,帮助工程师解决实际应用中的常见问题,提升步进电机控制精度与稳定性。 阅读详情

Description:
Find the kth largest element in an unsorted array. Note that it is the kth largest element in the sorted order, not the kth distinct element.

For example,
Given [3,2,1,5,6,4] and k = 2, return 5.

Note:
You may assume k is always valid, 1 ≤ k ≤ array’s length.

解法一:(Accepted: beat 8%)
解题思路:
注意题目要求是找第k大的数,且array的长度可以是1!要考虑极端情况。
利用快速排序里的partition函数和二分查找。注意由于是找最大的第k个数,所以partition的时候要把数组从大到小排列,注意下面代码的判断部分。

Language: C++

class Solution {
public:
    int partition(vector<int>& nums, int lo, int hi){
        if(lo <hi){//考虑到数组长度为1时,lo==hi,则lo+1是不合法的
        int i = lo+1, j = hi;//这里是lo+1因为下面是i--
        while(i<=j){//循环执行到指针i,j重合或交叉,保证一轮partition完成
            if(nums[i]<nums[lo]&&nums[j]>nums[lo])
                swap(nums[i++],nums[j--]);
            if(nums[i]>=nums[lo]) i++;
            if(nums[j]<=nums[lo]) j--;
        }
        swap(nums[lo],nums[j]);//是和位置j交换,因为位置j保证它是包括他以内前子数组的最小值
        return j;}
        else
            return 0;
    }

    int findKthLargest(vector<int>& nums, int k) {
        int lo = 0, hi = nums.size()-1;
        while(hi>lo)//这里while的作用是保证一直partition直到题目要求的位置k被正确归位。
        {
            int j = partition(nums,lo,hi);
            if(j < k-1) lo = j+1;//注意是k-1
            else if(j > k-1) hi = j-1;
            else return nums[k-1]; 
        }
        return nums[k-1];//注意是k-1
    }
};

Partition函数还可以这样写(findKthLargest不变):(Accepted: beat 36%)

 int partition(vector<int>& a, int lo, int hi){
        int i = lo, j = hi+1; int temp;
        if(j>1){//考虑数组只有一个元素的情况,这个很关键
        while(true){
            while((a[++i]>a[lo]))
                if(i == hi) break;
            while((a[--j]<a[lo]))
                if(j == lo) break;

            if(i >= j) break;//等于也要break,即i,j相遇
            swap(a[i],a[j]);
        }
        swap(a[lo],a[j]);//是和位置j交换,因为位置j保证它是包括他以内前子数组的最小值
        return j;}
        else return j-1;//数组元素为1的时候返回(hi+1)-1=hi
    }

之前改这个partition函数改了很久,都是一些细节问题:

  • 没考虑数组只有一个元素的情况
  • 一轮partition归位结束后a[lo]是和a[j]交换,不是a[i]

Happy Coding!

【GEOS-Chem模拟教程第二期下】全球生物质燃烧 GFAS 数据配置 本博客详细介绍全球生物质燃烧 GFAS 数据下载及在 GEOS-CHEM 模型中的配置 阅读详情

相关推荐

Android逆向进阶篇 Charles + Drony Vpn绕过代理检测方案 获取猫眼App数据

Android逆向进阶篇 Charles + Drony Vpn绕过代理检测方案 获取猫眼App数据

曾用名:极客柒 1851

【Leetcode】215. 数组中第 k 大的数字(Kth Largest Element in an Array)

Leetcode - 215 Kth Largest Element in an Array (Medium) Input: [3,2,1,5,6,4] and k = 2 Output: 5 解法一:排序 public int findKthLargest(int[] nums, int k) { Arrays.sort(nums); return nums[nums.leng...

厉兵秣码 256

用Blender给ArduPilot无人船编队设计灯光秀:从建模到飞行的保姆级教程

本文详细介绍了如何利用Blender和ArduPilot为无人船编队设计灯光秀的全流程技术方案。从3D动画设计、坐标转换、数据导出到ArduPilot飞控配置和灯光控制,提供了一套完整的保姆级教程,帮助开发者实现水面灯光编队表演。

weixin_29213525的博客 386

LeetCode215:Kth Largest Element in an Array

Find the kth largest element in an unsorted array. Note that it is the kth largest element in the sorted order, not the kth distinct element.For example, Given [3,2,1,5,6,4] and k = 2, return 5.Note:

2582

软件测试--用例篇(测试用例的好处、测试用例的七种设计方法、测试用例的粒度、测试用例的评价)

作为软件测试工程师,最主要的工作就是:编写测试用例,那么为什么要编写测试用例?它有什么好处?如何编写测试用例?测试用例写简单好还是复杂好?如何评价测试用例的质量? 天呐撸!能说不会吗?! 作为倾向软件测试工程师的老铁们,还是一起来学习吧! 一、编写测试用例的好处 测试用例是测试者的依据 测试用例使得工作可重复,是自动化测试的基础 补充:自动化测试的前提条件是:功能比较稳定,页面...

cherrydreamsover的博客 3734

完整版:ultralytics下运行yoloworld并训练

本文介绍了Ultralytics YOLO环境的快速配置与使用流程:1) 通过conda创建Python 3.9环境并安装依赖包;2) 配置中科大镜像源加速安装PyTorch和Ultralytics;3) 准备YOLO格式数据集并修改data.yaml配置文件;4) 提供模型预测、训练和验证的常用指令,包括predict/train/val等命令参数设置。文章还包含CLIP模型下载、权重文件获取以及本地安装等注意事项,完整覆盖了从环境搭建到模型部署的全过程。

weixin_50209871的博客 1344

LeetCode 215. Kth Largest Element in an Array 题解

本题是经典的 Top K 问题。多种解法:排序、堆、快速选择快速选择可以达到线性时间注意第 k 大和索引的转换。

cannonjinx的博客 4036

YOLOv8改进 | 融合篇,YOLOv8改进主干网络为MobileNetV3+CA注意机制+添加小目标检测层(全网独家首发,实现极限涨点)

小目标检测难点众多,导致很多算法对小目标的检测效果远不如大中型目标。影响算法性能的主要原因如下:第一,小目标分辨率低、信息量不足,导致神经网络提取到的有效特征较少。第二,小目标在图像中所占的区域较小,易受背景干扰,这对算法的定位性能要求较高。第三,小物体标注困难,训练数据有限,导致模型泛化能力差。例如多尺度学习、无锚机制和生成对抗学习等方法,都能提高小目标检测的准确性和鲁棒性。为了改善小目标漏检现象严重的问题,我在 YOLOv8 中增加了 P2 检测头,相当于有四个检测头,使网络能检测到更小的目标。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 2857

【leetcode】215. Kth Largest Element in an Array

215.Kth Largest Element in an Array Find thekth largest element in an unsorted array. Note that it is the kth largest element in the sorted order, not the kth distinct element. Example 1: Input:...

lemonade13的博客 164

RK3588 , 基于mpp 解码 Jpeg To RGB

本文介绍了在RK3588开发板上使用Rockchip MPP(Media Process Platform)硬件加速接口将JPEG图像解码为RGB格式的完整流程。主要包括三个关键步骤:1) 读取JPEG文件数据;2) 配置MPP解码器,包括初始化上下文、设置RGB888输出格式和解码参数;3) 执行解码任务并将结果保存为图像文件。通过硬件加速,该方法能高效完成JPEG到RGB的转换,适用于嵌入式多媒体处理场景。

J。 1210

基于深度学习YOLOv10的障碍物检测系统

为了方便用户使用,我们将开发一个图形用户界面(GUI),允许用户上传图像或视频流并查看检测结果。我们使用PySide6开发GUI界面,它是Qt框架的Python绑定,适用于开发跨平台的桌面应用程序。本文详细介绍了如何基于YOLOv10模型构建一个障碍物检测系统,包括数据集准备、模型训练和推理到图形用户界面的开发。通过这一系统,用户可以方便地上传图像或视频流并进行障碍物检测,广泛应用于自动驾驶、机器人导航等领域。

斌擎科技 1052

leetcode 215: Kth Largest Element in an Array

leetcode 215: Kth Largest Element in an Array

西施豆腐渣 1万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

LeetCode 215:Kth Largest Element in an Array

Find the kth largest element in an unsorted array. Note that it is the kth largest element in the sorted order, not the kth distinct element. For example, Given [3,2,1,5,6,4] and k = 2, return 5.

哈哈的个人专栏 3871

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Kth Largest Element in an Array Leetcode #215 题解[C++]

题目来源 https://leetcode.com/problems/kth-largest-element-in-an-array/description/ 题目理解 ind the kth largest element in an unsorted array. Note that it is the kth largest element in the sorted or...

Wayne_Mai的博客 431

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Leetcode-215. Kth Largest Element in an Array

地址:https://leetcode.com/problems/kth-largest-element-in-an-array/ 描述: Find thekth largest element in an unsorted array. Note that it is the kth largest element in the sorted order, not the kth...

Lost2013的博客 210

【Leetcode】215. Kth Largest Element in an Array

大元素(其定义是从大到小排好序后位于第。个的数,即如果下标从。

数学、算法爱好者的博客 434

力扣215:数组中的第K个最大元素 (leetcode 215:Kth Largest Element In An Array)

力扣215:数组中的第K个最大元素 (leetcode 215:Kth Largest Element In An Array)

xxxnnn1991的博客 460

leetcode215. Kth Largest Element in an Array

题目描述 Find the kth largest element in an unsorted array. Note that it is the kth largest element in the sorted order, not the kth distinct element. Example 1: Input: [3,2,1,5,6,4] and k = 2 Output: 5 E...

中华小当家的博客 187

leetcode 215 Kth Largest Element in an array

目录leetcode215 Kth Largest Element in an array问题描述算法分析解法一:O(n)快速选择解法二:O(nlog(n)) 最小堆实现步骤代码实现快速查找最小堆 leetcode215 Kth Largest Element in an array 问题描述 Find the kth largest element in an unsorted array. Note that it is the kth largest element in the sorted ord

心安成长的码字书房 248

leetcode 215. Kth Largest Element in an Array

目录 一、问题分析 二、代码实现 1、排序 采用内置排序 采用冒泡排序 基数排序 2、堆 采用大顶堆 采用小顶堆 3、快速选择 递归版本 迭代版本 将输入数组随机化 采用中间下标的元素作为参照元素 https://leetcode.com/problems/kth-largest-element-in-an-array/ 返回数组中第k大的元素 一、问...

小景的博客 699

LeetCode215. Kth Largest Element in an Array

Kth Largest Element in an Array Find the kth largest element in an unsorted array. Note that it is the kth largest element in the sorted order, not the kth distinct element. Example 1: Input: [3,2,1,5...

Lightmare625 573

[leetcode] 215. Kth Largest Element in an Array 解题报告

题目链接:https://leetcode.com/problems/kth-largest-element-in-an-array/ Find the kth largest element in an unsorted array. Note that it is the kth largest element in the sorted order, not the kth dis

小榕流光的专栏 2548

【leetcode笔记】Python实现215.Kth Largest Element in an Array

题目: 快速选择、堆排序:https://leetcode.com/problems/kth-largest-element-in-an-array/description/ 这里我们使用堆排序方法 这里讲解堆的定义特别清楚:https://blog.csdn.net/u013384984/article/details/79496052 下面是简化版: 堆的定义 大顶堆:每个节点的值都不大于...

Jack_Kuo的博客 900

Leetcode215. Kth Largest Element in an Array

找出无序数组第 k 大的数。

magic_jiayu的博客 221

LeetCode 215. Kth Largest Element in an Array

欢迎访问原文所在博客:https://52heartz.top/articles/leetcode-215-kth-largest-element-in-an-array/ 解答1[Java]: import java.util.Arrays; class Solution { public int findKthLargest(int[] nums, int k) { i...

user2639的博客 163

leetcode【215】Kth Largest Element in an Array

写在最前面: 没有那个排序的话,这道题很简单。   leetcode【215】Kth Largest Element in an Array   Find the kth largest element in an unsorted array. Note that it is the kth largest element in the sorted order, not the kt...

ssjdoudou的博客 1万+
上一篇: 算法笔记-快速排序(Quick Sort)之Selection
下一篇: 算法笔记-快速排序(Quick Sort)之Duplicate Keys
Peggy_Chang
博客等级 码龄11年 21粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值