文远知行 C++ 社招 技术一面

跟字节的一面比起来 太简单了 字节简直是焦作人
1. 项目
2. C++模板 之可变参数模板
3. C++多态
字节对齐
struct A{
    bool a;
    bool b;
    bool c;
    int i;
    bool d;    
};

struct B{
    bool a;
    bool b;
    bool c;
    bool d;
    int i;
};

//二者有什么区别

4 算法
相比于其他的面试中直接给出现成的题目,文远是现场给需求,边说边写,比如链表要求带虚拟头节点的和不带头结点的情况
4.1. 自定义链表数据结构 反转链表 太简单了哈
递归 也可以做
小哥看着很年轻 开始他说 我这样写反不过来 我还解释了一通🤣

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        ListNode* cur = NULL, *pre = head;
        while (pre) {
            ListNode* temp = pre->next;
            pre->next = cur;
            cur = pre;
            pre = temp;
        }
        return cur;
    }
};

4.2 岛屿数量
入门的DFS  抛开算法本身,需要注意的就是编写接口给用户使用的时候,一定要注意接口是用户友好型的,一般情况不修改用户的输入

#include <functional>
#include <vector>
int numIslands(const std::vector<std::vector<char>> &grid);

int main(int argc, char **argv)
{
    //假设每次都输入一个陆地集合
    std::vector<std::vector<char>> grid;
    return numIslands(grid);
}

int numIslands(const std::vector<std::vector<char>> &grid)
{
    int row = grid.size();
    int col = grid[0].size();
    if (row == 0 || col == 0)
        return 0;

    int res = 0;
    std::vector<std::vector<char>> work_grid = grid;

    std::function<void(int, int)> DFS = [&](int x, int y)
    {
        if (x < 0 || x >= row || y < 0 || y >= col || work_grid[x][y] == '0')
            return;
        work_grid[x][y] = '0';
        DFS(x + 1, y);
        DFS(x - 1, y);
        DFS(x, y + 1);
        DFS(x, y - 1);
    };

    for (int i = 0; i < row; i++)
    {
        for (int j = 0; j < col; j++)
        {
            if (work_grid[i][j] == '1')
            {
                res++;
                DFS(i, j);
            }
        }
    }
    return res;
}

5. 了解迪杰斯特拉算法不?
6. 了解A*算法不?
不了解
7. 给你一个三角形 和一个点怎么判断这个点在不在三角形内部?
不会
8. 给你两个点构成直线 和一个点怎么判断这个这个点在线的左边还是右边?
不会


#面经##文远知行##C++工程师#
全部评论
第七的这两个其实都是一个问题 两向量差乘就可以了。
1 回复 分享
发布于 2021-07-13 02:12
想加好友1193286462
1 回复 分享
发布于 2021-07-13 08:00
请问一下,关于C++模板 之可变参数模板这一块,面试官问的什么啊?tuple吗,对这一块lz能详细说一下吗
1 回复 分享
发布于 2021-07-13 17:35

相关推荐

过往烟沉:我说什么来着,java就业面就是广!
点赞 评论 收藏
分享
评论
7
32
分享
牛客网
牛客企业服务