美团一面凉经
算法题
反转链表
两个有序数组间相加和的Topk问题(时间复杂度要求O(KlogK)真的不会)
java基础
ArrayList LinkList的区别
hashmap在jdk1.7和1.8版本中有哪些改动
java中都有中怎样处理并发
说一说volatile关键字的底层原理
java都有哪些方式创建类的对象
线程池的工作原理
创建线程都有哪些方式
jdk中有哪些代理模式
说一说jvm工作流程
双亲委派机制
jmm内存模型
说一下java中的常见异常
内存溢出是什么情况
数据库
说一说什么是事务
怎样防止大事务,及处理办法
数据库的隔离级别
如何防止sql注入
mysql的存储引擎
mysql有哪些索引
说一说联合索引和覆盖索引
InnoDB和MyISAM的区别
mysql使用B+树索引而不使用B树或者hash索引
设计模式
说一说有哪些常用的设计模式
策略模式说一下
redis
redis的基本数据类型
为什么要使用redis
怎么样能确保缓存中数据和主存中数据的一致性
redis速度为什么这么快
spring
AOP IOC 的原理
看过Spring的源代码吗(了解很少)
算法题
反转链表
两个有序数组间相加和的Topk问题(时间复杂度要求O(KlogK)真的不会)
java基础
ArrayList LinkList的区别
hashmap在jdk1.7和1.8版本中有哪些改动
java中都有中怎样处理并发
说一说volatile关键字的底层原理
java都有哪些方式创建类的对象
线程池的工作原理
创建线程都有哪些方式
jdk中有哪些代理模式
说一说jvm工作流程
双亲委派机制
jmm内存模型
说一下java中的常见异常
内存溢出是什么情况
数据库
说一说什么是事务
怎样防止大事务,及处理办法
数据库的隔离级别
如何防止sql注入
mysql的存储引擎
mysql有哪些索引
说一说联合索引和覆盖索引
InnoDB和MyISAM的区别
mysql使用B+树索引而不使用B树或者hash索引
设计模式
说一说有哪些常用的设计模式
策略模式说一下
redis
redis的基本数据类型
为什么要使用redis
怎么样能确保缓存中数据和主存中数据的一致性
redis速度为什么这么快
spring
AOP IOC 的原理
看过Spring的源代码吗(了解很少)
全部评论

TOP k问题的nlogn代码框架,所有top k题目都适用,用的就是quick select叫快速选择,是快排的变种。
private int quickSort(int[] nums, int start, int end, int k) {
if (start == end) {
return nums[start];
}
int pivot = nums[(start + end)/2];
int left = start; //左指针
int right = end; //右指针
while(left <= right) {
while(left <= right && nums[left] < pivot) {
left++;
}
while(left <= right && nums[right] > pivot) {
right--;
}
if(left <= right) {
int temp = nums[left];
nums[left] = nums[right];
nums[right] = temp;
left++;
right--;
}
}
if(start + k - 1 <= right) {
return quickSort(nums, start, right, k);
}
if(start + k - 1 >= left) {
return quickSort(nums, left, end, k - left + start);
}
return nums[right + 1];
}
请问这是社招还是校招的问题呀
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享