牛客网 | 高频面试题 | 寻找第K大

牛客网之SQL刷题练习——一个实用的网站 推荐一个免费在线刷题神器,希望我们都能早日拿到互联网大厂入门券! 阅读详情

题目

寻找第K大_牛客网

有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。

给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。

示例1
输入
[1,3,5,2,2],5,3
返回值
2

解析

冒泡法

和这篇博客思路类似
牛客网 | 高频面试题 | 最小的K个数_我是一块小石头-优快云博客
K轮冒泡排序~即可

class Finder {
public:
    int findKth(vector<int> input, int n, int K) {
        // write code here
        if(n<K)return {};
        vector<int> res;
        int j=0,i=0;
        for(i=0;i<K;++i){
            for(j=0;j<n-1-i;++j){
                if(input[j]>input[j+1]){
                    swap(input[j],input[j+1]);
                }
            }
        }
        return input[j];
    }
};

快排法

主体思路就是利用快速排序每次能将比某个哨兵小的数放在左侧,大的数放在右侧

class Finder {
public:
    int findKth(vector<int> a, int n, int K) {
        return quickfind(a, 0, n-1, K);
    }
     
    int quickfind(vector<int>& a, int left, int right, int k) {
        int i = left;
        int j = right;
        int mark = a[left];
         
        while (i < j) {
            while (i < j && a[j] >= mark)
                --j;
            if (i < j)
                a[i++] = a[j];
             
            while (i < j && a[i] <= mark)
                ++i;
            if (i < j)
                a[j--] = a[i];
        }
        a[i] = mark;
         
        //哨兵右侧比他大的数字个数
        int big_num = right - i;
        
        //如果哨兵刚好是第K大的数
        if (k - big_num - 1 == 0)
            return mark;
        else if (k - big_num - 1 > 0) {
            //如果右侧数字个数不够K个,则从左侧找第k-big_num-1大的数
            return quickfind(a, left, i - 1, k - big_num - 1);
        } else {
            //如果右侧数字个数比K多,则在右侧找第K大的数
            return quickfind(a, i + 1, right, k);
        }
    }
};
牛客网面试高频题top100(11~20) ** 牛客网面试高频题top100(11~20 java实现) ** 11.跳台阶 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 public class Solution { public int jumpFloor(int target) { int c1 = 1,c2 = 2; if(target<3) return target; int c3 = 0; 阅读详情

相关推荐

大厂速成算法笔记,Github上已收获近60K+star!力压LeetCode只为面试

有救了!!! 《吃透算法套路——只为面试》GitHub连续霸榜首页数周,star即将突破60k,受欢迎程度可见一斑: 文档的作者最先提出「刷题要掌握模板和套路」的观点,刷题就是应对面试拿 offer,再别整什么《算法导论》这种花里胡哨的了。 该文档的内容全部选自 LeetCode 和牛客网的原题,你只要按照文章顺序刷题,保你一个月速成算法。 还在为动态规划系列问题发愁吗?书中给动态规划总结出了一套框架模板,还有整整一个章节教你如何套模板做题,让我们来看看如此高star的文档内容: 算法刷题必读 学习算法

qwe123147369的博客 276

[笔试题]寻找第K大

目录 1题目来源 2题目描述 3分析 4完整代码 预备知识: [JavaDS]快速排序法 1题目来源 https://www.nowcoder.com/questionTerminal/e016ad9b7f0b45048c58a9f27ba618bf 2题目描述 有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。 给定一个整数数组a,同时给定它的大小n和要找的K(...

weixin_42645168的博客 411

不只是抓取:用五指灵巧手(ROH-A001/RH56)玩转ROS2下的力控与混合控制

本文深入探讨了在ROS2环境下使用五指灵巧手(ROH-A001/RH56)实现力控与混合控制的实战技巧。从硬件通信协议解析到ROS2节点开发,详细介绍了力感知架构、实时数据处理和混合控制策略,帮助开发者在Ubuntu系统中高效实现精密操作。通过鸡蛋抓取等实例,展示了力控技术在机器人灵巧操作中的关键作用。

weixin_28221501的博客 286

牛客网c语言入门题

c语言

includeevey的博客 3655

NVIDIA Tao Toolkit环境配置踩坑

请搭配食用该文章为 Tao 安装中可能出现的问题进行解答,如果存在本文章中没出现的问题,欢迎提问,由我复现后更新文章。由于大部分云服务器厂商不能支持 docker,因此我使用的环境为2023年5月27日在平台租的 3080 旧版环境进行实验。

qq_36630208的博客 771

GMSL转eDP芯片MAX9686X(ADI)

MAX96860/MAX96862/MAX96864解串器可以把单路或双路GMSL转换成eDP V1.4a,支持820MHzPCLK的无压缩的24bpp(每个像素的位数)视频,或660MHz的30bpp视频。芯片的GMSL支持NRZ编码的6Gbps/187Mbps的GMSL2,PAM4编码的12Gbps/187Mbps的GMSL3。同时支持单线(COAX模式)双向全双工传输控制数据和video数据。支持DSC压缩的芯片,最大支持像素时钟1080MHz@24bpp或者864MHz@30bpp,传输方式包括同轴

qflook的博客 2840

【牛客网】刷题【SQL篇】

一、入门 查找最晚入职员工的所有信息 select * from employees where hire_date =( select max(hire_date) from employees) 二、简单 查找入职员工时间排名倒数第三的员工所有信息 select * from employees where hire_date=( select distinct hire_date from employees order by hire_date desc limit

某可儿同学的博客 978

第42章:AI代码生成的质量标准——何时用AI、何时自己写

> - AI代码生成的质量分级标准:可用、稳定、安全、优雅 > - 一个决策矩阵:什么场景适合用AI,什么场景必须人工编写 > - 如何评估AI生成的代码质量(复杂度、可读性、安全性) > - 实战对比:同一需求下AI生成代码 vs 人工编写代码 > - 团队落地:将质量标准集成到Code Review和CI流程 > - 我如何将团队AI代码接受率从70%提升到90%

sfishfly的博客 161

牛客网——查找

法一:快排+二分查找,本地运行没有问题,到牛客网上提交一直显示内部错误。。。 #include<iostream> using namespace std; #define Maxn 100 bool BinaSearch(int Array[],int low,int high,int search_num) { while(low<=high){ int mid=(low+high)/2; if(Array[mid]==search_n..

weixin_44668727的博客 434

使用mid360运行lio-livox对比fast-lio2

msg_type为激光雷达发出的数据格式,有livox自定义数据类型格式CustomMsg和ros标准的PointCloud2格式,因此首先需要确定激光雷达端配置的是哪种格式。可以从激光雷达的ros驱动中看到驱动端有三种格式可以选,驱动端的数字2对应lio-livox中的1,驱动端的0对应lio-livox的格式0。如果使用的是Ubuntu18.04编译完成后运行直接成功,如果使用20.04运行会报错,需要修改以下源代码。针对livox-mid360 运行lio-livox的一些问题。

z1872385的博客 1229

成本中心(CO)和利润中心(PCA)是管理会计模块的核心组件

SAP中成本中心(CO)和利润中心(PCA)凭证处理存在差异:①外部交易(如费用支付、销售)会生成FI借贷凭证;②内部成本分摊和转移仅产生CO/PCA管理凭证,通过次级成本要素或利润中心转移科目记录,不涉及FI模块。核心区别在于是否涉及企业实际收支:实际收支触发FI凭证,内部核算仅生成管理会计凭证。系统通过这种机制实现财务会计与管理会计的集成与分离。

金牌架构师 1127

【牛客网-名企高频面试题】 NC88 寻找第K大

NC88 寻找第K大 题目描述 有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。 给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。 示例1 输入 [1,3,5,2,2],5,3 返回值 2 先排序再查找 public int findKthLargest(int[] nums, int k) { Arrays.sort(nums); return nums[nums.length - k];

your_棒棒糖的博客 212

【SCADA】KingSCADA将数据插入SQLServer的方法

1、创建数据库及数据表格;2、配置ODBC数据源。3、通过KingSCADA与数据库建立连接,将数据写入数据库对应表格。

做有价值的事,积累有价值的笔记! 4958

10数据结构与算法刷题之【排序算法】篇

除了去年11月份以及今年近几月的算法刷题之外,只有在当时20年蓝桥杯准备的时候才刷过一些题,在当时就有接触到一些动归、递归回溯、贪心等等,不过那会也还是一知半解,做的题目也特别少,因为考虑到之后面试有算法题以及数据结构算法对于一个程序员十分重要,我也开始了刷题之路。我目前的学习数据结构与算法及刷题路径:1、学习数据结构的原理以及一些常见算法。2、代码随想录:跟着这个github算法刷题项目进行分类刷,在刷题前可以学习一下对应类别的知识点,而且这里面每道题都讲的很详细。牛客网—面试必刷101题。

每个人都是独一无二的,把握好自己的节奏,跟着自己的心走。 726

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

蓝牙模块HM-10手册

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

牛客网 | 高频面试题 | 最小的K个数

文章目录题目解析k轮的冒泡排序小顶堆 题目 题目描述 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。 示例1 输入 [4,5,1,6,2,7,3,8],4 返回值 [1,2,3,4] 解析 需要考虑边界问题:n小于k! k轮的冒泡排序 class Solution { public: vector<int> GetLeastNumbers_Solution(vector<int> input, int

我是一块小石头 191

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

牛客网 | 高频面试题 | 链表中的节点每k个一组翻转

文章目录题目解析 题目 将给出的链表中的节点每\ k k 个一组翻转,返回翻转后的链表 如果链表中的节点数不是\ k k 的倍数,将最后剩下的节点保持原样 你不能更改节点中的值,只能更改节点本身。 要求空间复杂度 \ O(1) O(1) 例如: 给定的链表是1\to2\to3\to4\to51→2→3→4→5 对于 \ k = 2 k=2, 你应该返回 2\to 1\to 4\to 3\to 52→1→4→3→5 对于 \ k = 3 k=3, 你应该返回 3\to2 \to1 \to 4\to 53→2→

我是一块小石头 499

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【牛客网-名企高频面试题】NC 69 链表中倒数第k个结点

NC 69 链表中倒数第k个结点 题目描述: 输入一个链表,输出该链表中倒数第k个结点。 示例1 输入 1,{1,2,3,4,5} 返回值 {5} /* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ public class Solution { public ListNode FindKthToTail

your_棒棒糖的博客 274

翻了2000篇面经,我总结了一套《大厂高频算法题目集》

:star:前言 题目来源 本文最新的题目更新在 https://github.com/fengdongdongwsn/high-frequency-algorithm 本文收集了在面试中,公司高频出现的算法题目。避免你在准备开始刷题或者是正在刷题时,没有目标。力扣题目实在是太多了。但是我们没有必要去把每道题都刷一遍。本系列题目主要来源如下: 牛客面经整理的面经真题牛客网和力扣上高频面试题栏目收集而来 :star:高频面试真题 表格中的内容很多都是力扣上的,建议牛客上的剑指offer,先刷完

冯冬冬的博客 467

【牛客网-名企高频面试题】NC119 最小的K个数

NC119 最小的K个数 冒泡排序的思想,只不过最外层循环K次就可以了,也就是说不用全部排序,只挑出符合提议的K个就可以。 import java.util.ArrayList; public class Solution { /** 冒泡排序的思想,只不过最外层循环K次就可以了,也就是说不用全部排序,只挑出符合提议的K个就可以。 */ public ArrayList<Integer> GetLeastNumbers_Solution(int [] inpu

your_棒棒糖的博客 187

java数据结构_Map和Set_面试题_9.4

但还是没办法,再研究,为什么会解答错误,预期结果是先输出 i ,再输出 love,我们的输出为先输出了love,后输出了 i,不对呀,我们明明记得在调整优先级队列的时候,考虑到了两个单词出现次数情况相同,然后让字母顺序小的单词入列,为什么此处出现了问题呢?蓦然回首,bug却在灯火阑珊处。我们在遍历map向优先级队列填入元素的时候,在minHeap.size() < k的时候,即建立前k个元素的小根堆的时候,频率相同的情况,并没有处理,我们只是在后面放满元素的时候,才处理了频率相同的情况。

Zz_waiting的博客 916

牛客刷题系列之进阶版(幸运的袋子,06-散列查找1 电话聊天狂人,前K个高频单词)

记录自己每天在牛客网上写的难题

yin_ming_hui的博客 313

牛客网 | 高频面试题 | 设计LRU缓存结构

文章目录题目解析 题目 设计LRU缓存结构_牛客网 示例1 输入 [[1,1,1],[1,2,2],[1,3,2],[2,1],[1,4,4],[2,2]],3 返回值 [1,-1] 说明 第一次操作后:最常使用的记录为("1", 1) 第二次操作后:最常使用的记录为("2", 2),("1", 1)变为最不常用的 第三次操作后:最常使用的记录为("3", 2),("1", 1)还是最不常用的 第四次操作后:最常用的记录为("1", 1),("2", 2)变为最不常用的 第五次操作后:

我是一块小石头 285

牛客网Java开发高频面试题,秀出天际

可想而知,有限数量的商品在同一时刻被很多倍的请求同时来减库存,减库存又分为“拍下减库存”“付款减库存”以及预扣等几种,在大并发更新的过程中都要保证数据的准确性,其难度可想而知。虽然介绍了很多极致的优化思路,但现实中总难免出现一些我们考虑不到的情况,所以要保证系统的高可用和正确性,还要设计一个PlanB来兜底,以便在最坏情况发生时仍然能够从容应对。求同时来减库存,减库存又分为“拍下减库存”“付款减库存”以及预扣等几种,在大并发更新的过程中都要保证数据的准确性,其难度可想而知。

2401_83704192的博客 987

牛客网算法——名企高频面试题143题(7)

题目描述 给定一棵完全二叉树的头节点head,返回这棵树的节点个数。如果完全二叉树的节点数为N,请实现时间复杂度低于O(N)的解法。 package 名企高频面试题143; import org.junit.Test; /** * @Classname 完全二叉树的节点数 * @Description TODO * @Date 2020/12/15 14:08 * @Created by xjl */ public class 完全二叉树的节点数 { public class.

庄小焱 518
上一篇: 力扣网 | 每日打卡题 | 387. 字符串中的第一个唯一字符
下一篇: 力扣网 | 每日打卡题 | 455. 分发饼干 | 圣诞节的饼干
stone_fall
博客等级 码龄9年 230粉丝 256原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值