- 1
- 0
- 约4.22千字
- 约 12页
- 2026-01-16 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年IT公司面试技术题与答案解析
一、编程语言与数据结构(15分,共3题)
1.题目(5分):
请用Python实现一个函数,输入一个正整数`n`,返回其二进制表示中`1`的个数。例如,输入`5`(二进制`101`),返回`2`。要求时间复杂度为O(logn)。
2.题目(5分):
给定一个无重复元素的数组`nums`和一个目标值`target`,请编写一个函数返回`target`在`nums`中的索引。如果不存在,返回`-1`。例如,`nums=[4,5,6,8,9]`,`target=5`,返回`1`。
3.题目(5分):
请解释什么是“动态规划”,并举例说明如何用动态规划解决“斐波那契数列”问题。
二、算法与数据结构(20分,共2题)
1.题目(10分):
请设计一个算法,找出数组中第三大的数。假设数组中没有重复元素。例如,输入`[1,2,-2147483648,4]`,返回`2`。
2.题目(10分):
请解释什么是“深度优先搜索”(DFS),并给出一个用DFS遍历二叉树的Python实现示例。
三、数据库与SQL(15分,共2题)
1.题目(7分):
请编写SQL查询,找出公司中工资高于平均工资的员工姓名和工资。假设表名为`employees`,包含`name`(姓名)和`salary`(工资)两列。
2.题目(8分):
请解释“数据库索引”的作用,并说明在哪些情况下应避免使用索引。
四、操作系统与计算机网络(20分,共2题)
1.题目(10分):
请解释“进程”与“线程”的区别,并说明在哪些场景下应使用多线程而非多进程。
2.题目(10分):
请简述TCP三次握手的过程,并解释为什么需要三次握手而非两次或四次。
五、系统设计与分布式系统(30分,共2题)
1.题目(15分):
请设计一个简单的微博“关注-粉丝”系统,说明核心组件和数据表设计。
2.题目(15分):
请解释“负载均衡”的作用,并说明常见的负载均衡算法(如轮询、最少连接)。
六、编程题(20分,共1题)
题目(20分):
请用Java或Python实现一个“LRU缓存”数据结构,支持`get`和`put`操作。LRU(LeastRecentlyUsed)缓存会在缓存满时淘汰最久未使用的元素。
答案与解析
一、编程语言与数据结构
1.答案(Python):
python
defcount_bits(n):
count=0
whilen:
count+=n1
n=1
returncount
解析:
-`n1`可以判断最低位是否为1,如果是,则`count`加1。
-`n=1`将`n`右移一位,相当于二进制去掉最低位。
-时间复杂度为O(logn),因为每次操作都会减少`n`的位数。
2.答案(Python):
python
defsearch(nums,target):
fori,numinenumerate(nums):
ifnum==target:
returni
return-1
解析:
-遍历数组,如果找到`target`,返回索引。
-如果遍历结束未找到,返回`-1`。
-时间复杂度为O(n),但题目要求O(logn),可优化为二分查找。
3.答案:
动态规划(DP)是一种通过将问题分解为子问题并存储子问题解来避免重复计算的算法思想。其核心要素包括:
1.最优子结构:原问题的最优解包含子问题的最优解。
2.重叠子问题:不同路径可能重复计算相同子问题。
斐波那契数列示例:
递归解法(低效):
python
deffib(n):
ifn=1:
returnn
returnfib(n-1)+fib(n-2)
动态规划优化:
python
deffib(n):
dp=[0](n+1)
dp[1]=1
foriinrange(2,n+1):
dp[i]=dp[i-1]+dp[i-2]
returndp[n]
-时间复杂度从O(2^n)降至O(n),空间复杂度为O(n)。
二、算法与数据结构
1.答案:
python
defthird_largest(nums):
first,second,third=float(-inf),float(-inf),float(-inf)
fornuminnums:
ifnumfirst:
first,second,third=num,first,second
eliffirstnumsecond:
second,third=num,second
el
原创力文档

文档评论(0)