牛客题霸 [寻找第K大] C++题解/答案

题目描述

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

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

题目:

利用快排+二分

题解:

class Finder {public:int findKth(vector<int> a, int n, int K) {// write code here、return find(a,0,n-1,n-K+1);}int find(vector<int>&a,int l,int r,int K){if(l==r) return a[l];int i=l-1;int j=r+1;int x=a[l+r>>1];while(i<j){do i++;while(a[i]<x);do j--;while(x<a[j]);if(i<j) swap(a[i],a[j]);}int s=j-l+1;if(K<=s) return find(a,l,j,K);else return find(a,j+1,r,K-s);}
};

牛客题霸 [寻找第K大] C++题解/答案相关推荐

  1. 牛客题霸 [ 最小的K个数] C++题解/答案

    牛客题霸 [ 最小的K个数] C++题解/答案 题目描述 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4. 题解: 如果有n&l ...

  2. 牛客题霸 [子数组最大乘积] C++题解/答案

    牛客题霸 [子数组最大乘积] C++题解/答案 题目描述 给定一个double类型的数组arr,其中的元素可正可负可0,返回子数组累乘的最大乘积. 题解: 同时记录最大值和最小值,为什么?因为给的元素 ...

  3. 牛客题霸 [滑动窗口的最大值] C++题解/答案

    牛客题霸 [滑动窗口的最大值] C++题解/答案 题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值.例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一 ...

  4. 牛客题霸 [最长重复子串] C++题解/答案

    牛客题霸 [最长重复子串] C++题解/答案 题目描述 一个重复字符串是由两个相同的字符串首尾拼接而成,例如abcabc便是长度为6的一个重复字符串,而abcba则不存在重复字符串. 给定一个字符串, ...

  5. 牛客题霸 [ 集合的所有子集] C++题解/答案

    牛客题霸 [ 集合的所有子集] C++题解/答案 题目描述 现在有一个没有重复元素的整数集合S,求S的所有子集 注意: 你给出的子集中的元素必须按升序排列 给出的解集中不能出现重复的元素 题解: 先s ...

  6. 牛客题霸 [容器盛水问题] C++题解/答案

    牛客题霸 [容器盛水问题] C++题解/答案 题目描述 给定一个整形数组arr,已知其中所有的值都是非负的,将这个数组看作一个容器,请返回容器能装多少水. 具体请参考样例解释 题解: 我们找出容器的左 ...

  7. 牛客题霸 [最长公共子序列] C++题解/答案

    牛客题霸 [最长公共子序列] C++题解/答案 题目描述 给定两个字符串str1和str2,输出连个字符串的最长公共子序列.如过最长公共子序列为空,则输出-1. 题解: dp经典问题 代码: clas ...

  8. 牛客题霸 [ 最长递增子序列] C++题解/答案

    牛客题霸 [ 最长递增子序列] C++题解/答案 题目描述 给定数组arr,设长度为n,输出arr的最长递增子序列.(如果有多个答案,请输出其中字典序最小的) 题意: 直接暴力会超时 应该用二分+贪心 ...

  9. 牛客题霸 [最长公共子串]C++题解/答案

    牛客题霸 [最长公共子串]C++题解/答案 题目描述 给定两个字符串str1和str2,输出两个字符串的最长公共子串,如果最长公共子串为空,输出-1 题解: lcs模板 代码: class Solut ...

最新文章

  1. 批处理下的 cd 与 cd /d 命令
  2. 常见的python模块_python常见模块
  3. iOS内存泄漏的常见情况
  4. 【Pandas】dataframe 设置完全显示所有列
  5. python兔子和獾_少儿编程分享:手把手教你用PYTHON编写兔獾大作战(三)
  6. 分布式缓存技术memcached学习系列(五)—— memcached java客户端的使用
  7. list 转set_MapStruct高级用法:List和String互转
  8. matlab 仿真逆变电路,逆变电路的MATLAB仿真研究论文.doc
  9. 三菱plc控制步进电机实例_【干货】plc控制步进电机逻辑思路,思路通了步步顺畅...
  10. excel 某个单元格不是等于空值_EXCEL中IF函数中怎么表达某一个单元格不等于空白则返回值1.4...
  11. 互联网公司裁员还有秘密?我知道了!
  12. 阿里云网盘开启公测!不限速、2T永久免费空间!!
  13. 【软件分析/静态程序分析学习笔记】3.数据流分析(Data Flow Analysis) (上):可达性分析(Reaching Definitions)
  14. 数组元素全排列、组合 C语言代码
  15. linux—rm命令详解(一天一个命令)
  16. Windows资源管理器
  17. 函数凹凸性证明中点函数值和函数值中点的关系
  18. 查看邮件导致关联?亚马逊多账号管理必看
  19. Maven配置阿里云HTTPS镜像地址
  20. 分类-3-生成学习-3-朴素贝叶斯模型、laplace平滑、多元伯努利事件模型、多项式事件模型

热门文章

  1. 数据挖掘在呼叫中心的六大应用点
  2. android技术积累,Android开发中积累的一些报错的解决方法
  3. lisp正负调换_坐标提取lisp程序
  4. python训练词库_在Python中训练NGramModel
  5. 自拟计算机作文100字,我的电脑作文100字五篇
  6. php crypt mysql password_php使用crypt()函数进行加密
  7. 中connect怎么用_烘焙中的各种酒,到底该怎么用?
  8. python分布式爬虫及数据存储_二十一 Python分布式爬虫打造搜索引擎Scrapy精讲—爬虫数据保存...
  9. libaio.so.1 mysql_libaio.so.1()(64bit) is needed by MySQL-server
  10. leedcode344. 反转字符串