📜  高通面试经历|第 11 组(校内)(1)

📅  最后修改于: 2023-12-03 15:42:33.604000             🧑  作者: Mango

高通面试经历 | 第 11 组(校内)

简介

本文介绍了本人在高通校园招聘中参加的第 11 组面试经历。面试主要涉及 C++、数据结构与算法、操作系统等方面的知识。

面试流程

本次面试流程如下:

  1. 自我介绍。
  2. 交流项目经验。
  3. 简述 C++ 中的虚函数和纯虚函数,并给出一个示例。
  4. 问答环节,主要涉及数据结构与算法、操作系统等方面的知识。
  5. 代码实现。
面试回顾
自我介绍

自我介绍时需要简明扼要地介绍自己的基本信息、背景和工作经验等,避免过于冗长。

交流项目经验

交流项目经验需要将自己参与的项目和负责的部分说明清楚,以及实现过程中遇到的问题和解决方案等。

C++中的虚函数和纯虚函数

C++中的虚函数和纯虚函数都是用于实现多态的,其中虚函数是有具体实现的函数,纯虚函数则没有实现,需要由子类进行实现。

class Base {
public:
    virtual void func1() {
        // 具体实现
    }
    virtual void func2() = 0;
};

上述代码中,func1()是虚函数,有具体实现,func2()是纯虚函数,没有实现,需要在子类中具体实现。

问答环节

在问答环节中,面试官主要涉及数据结构与算法、操作系统等方面的知识,需要从基础知识到高级内容都掌握。

代码实现

代码实现是本次面试的难点,需要对算法和数据结构有深入的理解。在本次面试中,面试官出题目如下:

给定一个数组,找出数组中所有数对之和为给定值的数对并输出。

void print_pairs(vector<int>& nums, int sum) {
    unordered_map<int, int> mp;
    for (int i = 0; i < nums.size(); i++) {
        int complement = sum - nums[i];
        if (mp.find(complement) != mp.end()) {
            cout << nums[i] << " " << complement << endl;
        }
        mp[nums[i]] = i;
    }
}

上述代码中,我们使用哈希表存储已扫描的数以及其下标,并在遍历时寻找是否有满足条件的数对。

总结

本次面试主要考察了C++基础、数据结构与算法和操作系统等方面的知识,需要在平时多加练习以及深入理解其中的细节。同时,在面试过程中要表现出自信,有问题需要主动沟通并解决,这对于评判面试结果也有很大影响。