2026年IT行业招聘面试题及答案.docxVIP

  • 0
  • 0
  • 约4.95千字
  • 约 14页
  • 2026-01-13 发布于福建
  • 举报

第PAGE页共NUMPAGES页

2026年IT行业招聘面试题及答案

一、编程语言与算法(共5题,每题6分,总分30分)

1.Java题目:请编写一个Java方法,实现将一个字符串中的所有空格替换为%20。要求时间复杂度为O(n),空间复杂度为O(1)。

java

publicStringreplaceSpaces(Strings){

char[]chars=s.toCharArray();

intspaceCount=0;

for(charc:chars){

if(c==)spaceCount++;

}

char[]newChars=newchar[chars.length+spaceCount2];

intj=0;

for(inti=0;ichars.length;i++){

if(chars[i]==){

newChars[j++]=%;

newChars[j++]=2;

newChars[j++]=0;

}else{

newChars[j++]=chars[i];

}

}

returnnewString(newChars);

}

解析:通过两次遍历实现,第一次统计空格数量,第二次替换空格为%20。时间复杂度O(n),空间复杂度O(1)。

2.Python题目:请实现快速排序算法,并分析其时间复杂度。

python

defquick_sort(arr):

iflen(arr)=1:

returnarr

pivot=arr[len(arr)//2]

left=[xforxinarrifxpivot]

middle=[xforxinarrifx==pivot]

right=[xforxinarrifxpivot]

returnquick_sort(left)+middle+quick_sort(right)

解析:快速排序的平均时间复杂度为O(nlogn),最坏情况为O(n^2),空间复杂度为O(logn)。

3.C++题目:请编写一个C++函数,判断一个整数是否为回文数(例如121是回文数,123不是)。

cpp

boolisPalindrome(intx){

if(x0)returnfalse;

longlongrev=0,original=x;

while(x!=0){

rev=rev10+x%10;

x/=10;

}

returnrev==original;

}

解析:通过反转整数并比较原数和反转后的数是否相同来判断。

4.JavaScript题目:请实现一个函数,找出数组中重复的数字,并确保空间复杂度为O(1)。

javascript

functionfindDuplicate(nums){

for(leti=0;inums.length;i++){

letindex=Math.abs(nums[i])-1;

if(nums[index]0)returnMath.abs(nums[i]);

nums[index]=-nums[index];

}

return-1;

}

解析:通过标记数组元素的符号来检测重复数字,空间复杂度O(1)。

5.Go题目:请编写一个Go函数,实现二分查找算法,并返回目标值在切片中的索引。

go

funcbinarySearch(nums[]int,targetint)int{

left,right:=0,len(nums)-1

forleft=right{

mid:=left+(right-left)/2

ifnums[mid]==target{

returnmid

}elseifnums[mid]target{

left=mid+1

}else{

right=mid-1

}

}

return-1

}

解析:二分查找的时间复杂度为O(logn),适用于有序数组。

二、系统设计与数据库(共5题,每题6分,总分30分)

1.数据库题目:请设计一个简单的博客系统数据库表结构,包括文章表和用户表,并说明外键关系。

sql

--用户表

CREATETABLEusers(

user_idINTPRIMARYKEYAUTO_INCREMENT,

usernameVARCHAR(50)NOTNULL,

emailVARCHAR(100)UNIQUENOTNUL

文档评论(0)

1亿VIP精品文档

相关文档