春招、秋招或者社招,很多时候会有笔试、面试,每个大公司考察的基础部分内容都差不多。所以建议小伙伴们多刷刷笔试面试题,特别是对于初入职场的同学来说,分数高自然能进好的公司、好的部门、拿到高的薪资。惊脉互联网求职今天和大家分享一些后端开发笔试真题。
(1)排序算法实现
题目:用 C++ 实现快速排序算法,对一个整数数组进行排序。
答案示例:
cpp
#include <iostream>
using namespace std;
void quickSort(int arr[], int low, int high) {
if (low < high) {
int pivot = arr[high];
int i = (low - 1);
for (int j = low; j <= high - 1; j++) {
if (arr[j] <= pivot) {
i++;
swap(arr[i], arr[j]);
}
}
swap(arr[i + 1], arr[high]);
int pi = i + 1;
quickSort(arr, low, pi - 1);
quickSort(arr, pi + 1, high);
}
}
int main() {
int arr[] = {10, 7, 8, 9, 1, 5};
int n = sizeof(arr) / sizeof(arr[0]);
quickSort(arr, 0, n - 1);
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
return 0;
}
(2)数据处理逻辑
题目:给定一个包含多个用户登录记录的日志文件,每行记录包含用户 ID、登录时间和登出时间。请计算每个用户的在线时长总和,并按照在线时长从长到短进行排序。
答案思路:
可以使用字典来存储每个用户的在线时长。
遍历日志文件的每一行,计算每个用户的单次在线时长(登出时间 - 登录时间),并累加到对应的用户 ID 的在线时长总和中。
将字典中的数据转换为包含用户 ID 和在线时长的列表,然后根据在线时长进行排序。
示例代码(以 Python 为例):
python
log_file = [
["user1", 10, 20],
["user2", 15, 30],
["user1", 30, 40]
]
user_duration = {}
for record in log_file:
user_id = record[0]
login_time = record[1]
logout_time = record[2]
duration = logout_time - login_time
if user_id in user_duration:
user_duration[user_id] += duration
else:
user_duration[user_id] = duration
sorted_duration = sorted(user_duration.items(), key=lambda x: x[1], reverse=True)
print(sorted_duration)