- 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)