网易2016实习研发工程师编程题——寻找第K大
1、题目
有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。 给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。
测试样例: [1,3,5,2,2],5,3
返回:2
2、基本思想
本文中不考虑优化算法,直接使用快排算法对数据先进行排序,然后返回排序好的第K大数据。有优化算法的给出方案。
2、解决方案
import java.util.*;public class Finder {public int findKth(int[] a, int n, int K) {// write code herereturn F_QuickSort(a,0,n-1)[n-K];}public static int[] F_QuickSort(int data[], int l, int r) {if (l < r) { int i = l, j = r, x = data[l]; while (i < j) { while(i < j && data[j] >= x) // 从右向左找第一个小于x的数 j--;//找到后,将这个数赋值给i的位置,并将i向后移动位置if(i < j) data[i++] = data[j]; while(i < j && data[i] < x) // 从左向右找第一个大于等于x的数 i++; //找到后,将这个数赋值给j的位置,并将j向前移动1位if(i < j) data[j--] = data[i]; } data[i] = x; F_QuickSort(data, l, i - 1); // 递归调用 F_QuickSort(data, i + 1, r); }return data;}
}
网易2016实习研发工程师编程题——寻找第K大相关推荐
- 网易2016 实习研发工程师 [编程题]寻找第K大 and leetcode 215. Kth Largest Element in an Array...
传送门 有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数. 给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在. 测试样例: [1,3,5, ...
- 比较重量 网易2016实习研发工程师编程题
题目: 小明陪小红去看钻石,他们从一堆钻石中随机抽取两颗并比较她们的重量.这些钻石的重量各不相同.在他们们比较了一段时间后,它们看中了两颗钻石g1和g2.现在请你根据之前比较的信息判断这两颗钻石的哪颗 ...
- 网易16年研发实习生笔试题 - 寻找第K大
### 问题 有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数. 给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在. 输入样例 [1,3, ...
- 网易2016研发工程师编程题--完全解析
前言 之前做公司的真题,碰到动态规划,还有一些数学性质的题目比较多一点.网易2016研发工程师编程题跟之前做的题目有很大的不同,不仅涉及到二叉树的编码,还涉及到图的广度遍历,最后还有一个快排.可以说这 ...
- 牛客网--蘑菇街2016研发工程师编程题
牛客网--蘑菇街2016研发工程师编程题 第一题: 搬圆桌 时间限制:1秒 空间限制:32768K 现在有一张半径为r的圆桌,其中心位于(x,y),现在他想把圆桌的中心移到(x1,y1).每次移动一步 ...
- [C++日常小题] 寻找第k大数字(numberk)
Description 经过长时间的筹备工作,在Jourk,Ronny,Plipala,阿长,阿沈等人的努力下,DM实验室建立起自己的系列网站,其中包括三个大板块:DMOJ首页.DMOJ论坛.DMOJ ...
- 股票交易日(动态规划)----美团2016研发工程师编程题(二)
[编程题] 股票交易日 在股市的交易日中,假设最多可进行两次买卖(即买和卖的次数均小于等于2),规则是必须一笔成交后进行另一笔(即买-卖-买-卖的顺序进行).给出一天中的股票变化序列,请写一个程序计算 ...
- 血型遗传检测(pair原来没有先后顺序)----去哪儿2016研发工程师编程题
[编程题] 5-血型遗传检测 血型遗传对照表如下: 父母血型 子女会出现的血型 子女不会出现的血型 O与O O A,B,AB A与O A,O B,AB A与A A,O B,AB A与B A,B,AB, ...
- 网易2016实习研发笔试
小明陪小红去看钻石,他们从一堆钻石中随机抽取两颗并比较她们的重量.这些钻石的重量各不相同.在他们们比较了一段时间后,它们看中了两颗钻石g1和g2.现在请你根据之前比较的信息判断这两颗钻石的哪颗更重. ...
最新文章
- 排序 时间倒序_经典排序算法之冒泡排序(Bubble Sort)
- 演讲实录 | DevOps五大理念及其落地实践
- 第二届中国云计算与SaaS学术会议征文通知
- hi3559 h264
- Oracle inline view 简介
- oauth2.0里回调地址返回code中如何让code不显示在URL里?
- Date Picker和UITool Bar的使用
- 如何创建newsstand应用程序
- 卡特兰数 HDU2067 HDU4165 HDU1134
- python 仪表盘_如何使用Python刮除仪表板
- CSS框架+响应式设计
- rhel5.5下安装oracle10g报libXp.so.6错误
- 文档服务器备份吗,本地资料和云服务器备份吗
- 关于css布局的定位问题
- oracle 汉字转五笔码,芈月传的芈字怎么打?用五笔拆解并输入方法图解
- 3次根号计算机在线应用,根号计算器,三次根号计算器
- 斗地主中的提示出牌算法(Lua)
- c#向pdf插入图片,使用iTextSharp【实测成功】
- JMF环境配置(Eclipse)
- 已知一条斜边,求直角三角形的另外两条边
热门文章
- java进阶基础---2.3---IO流的概念及示例
- word2016论文不同章节设置页眉页码方法
- 《东周列国志》第一回 周宣王闻谣轻杀 杜大夫化厉鸣冤
- matlab 定时器timercallback,matlab定时器timer的用法,特别要注意回调函数的参数!...
- Excel VBA 字典/数组 示例
- 二分查找算法python实现_Python实现-二分查找算法(3种方法)
- 《C++大学教程》学习笔记(九)
- 大学计算机基础方案一,《大学计算机基础》实验实施方案-学生用汇.docx
- 港版支付宝上线,支付宝和微信海外大战谁的胜算更大?
- 移植boa服务器和错误指南