2026年软件工程师开发实战面试题集.docxVIP

  • 1
  • 0
  • 约7.04千字
  • 约 21页
  • 2026-03-15 发布于福建
  • 举报

第PAGE页共NUMPAGES页

2026年软件工程师开发实战面试题集

一、编程语言基础(共5题,每题10分,总分50分)

题目1(Java)

请编写一段Java代码,实现一个方法`findSecondLargest`,接收一个整数数组作为参数,返回该数组中第二大的数。如果数组中所有元素都相同,或者数组长度小于2,返回-1。

java

publicclassMain{

publicstaticvoidmain(String[]args){

int[]arr={12,35,1,10,34,1};

System.out.println(findSecondLargest(arr));//应输出35

}

publicstaticintfindSecondLargest(int[]arr){

if(arr==null||arr.length2){

return-1;

}

intfirst=Integer.MIN_VALUE;

intsecond=Integer.MIN_VALUE;

for(intnum:arr){

if(numfirst){

second=first;

first=num;

}elseif(numsecondnum!=first){

second=num;

}

}

return(second==Integer.MIN_VALUE)?-1:second;

}

}

题目2(Python)

请实现一个Python函数`merge_sorted_lists`,该函数接收两个已排序的链表作为参数,合并它们为一个新的排序链表,并返回新链表的头节点。

python

classListNode:

def__init__(self,val=0,next=None):

self.val=val

self.next=next

defmerge_sorted_lists(l1,l2):

dummy=ListNode(0)

current=dummy

whilel1andl2:

ifl1.vall2.val:

current.next=l1

l1=l1.next

else:

current.next=l2

l2=l2.next

current=current.next

ifl1:

current.next=l1

elifl2:

current.next=l2

returndummy.next

题目3(JavaScript)

请编写一个JavaScript函数`removeDuplicates`,接收一个数组作为参数,删除其中的重复元素,并返回一个新数组。原数组应保持其元素顺序。

javascript

functionremoveDuplicates(arr){

constresult=[];

constseen=newSet();

for(constitemofarr){

if(!seen.has(item)){

seen.add(item);

result.push(item);

}

}

returnresult;

}

//示例

console.log(removeDuplicates([1,2,2,3,4,4,5]));//输出[1,2,3,4,5]

题目4(C++)

请实现一个C++函数`reverseWords`,该函数接收一个字符串,将其中每个单词的字符顺序反转,但保持单词之间的顺序不变。空格视为单词分隔符。

cpp

includeiostream

includestring

includealgorithm

usingnamespacestd;

voidreverseWords(strings){

intn=s.length();

intstart=0;

for(intend=0;end=n;++end){

if(end==n||s[end]==){

reverse(s.begin()+start,s.begin()+end);

start=end+1;

}

}

}

intmain(){

strings=Letsreversethewords;

reverseWords(s);

coutsendl;//输出:ssesreverehtdrows

return0;

}

题目5(Go)

请编写一个Go函数`findMissingNum

文档评论(0)

1亿VIP精品文档

相关文档