- 0
- 0
- 约9.46千字
- 约 23页
- 2026-10-19 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年高级软件工程师面试宝典及参考答案
一、编程题(共5题,每题20分,总分100分)
1.编程题1(20分):设计一个高效的算法,找出数组中第K个最大的元素。要求不使用排序,时间复杂度不超过O(n)。
java
importjava.util.Random;
publicclassKthLargestElement{
publicstaticintfindKthLargest(int[]nums,intk){
if(nums==null||nums.lengthk){
thrownewIllegalArgumentException(Invalidinput);
}
intleft=0,right=nums.length-1;
Randomrand=newRandom();
while(true){
intpivotIndex=left+rand.nextInt(right-left+1);
intnewPivotIndex=partition(nums,left,right,pivotIndex);
if(newPivotIndex==k-1){
returnnums[newPivotIndex];
}els
原创力文档

文档评论(0)