大厂后端开发笔试真题(2)

惊脉互联网求职
2025-01-03

春招、秋招或者社招,很多时候会有笔试、面试,每个大公司考察的基础部分内容都差不多。所以建议小伙伴们多刷刷笔试面试题,特别是对于初入职场的同学来说,分数高自然能进好的公司、好的部门、拿到高的薪资。惊脉互联网求职今天和大家分享一些后端开发笔试真题。


三、算法与数据处理


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、登录时间和登出时间。请计算每个用户的在线时长总和,并按照在线时长从长到短进行排序。

答案思路:

可以使用字典来存储每个用户的在线时长

大厂后端开发笔试真题(2)


遍历日志文件的每一行,计算每个用户的单次在线时长(登出时间 - 登录时间),并累加到对应的用户 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)

分享
下一篇:这是最后一篇
上一篇:这是第一篇