当前位置: 首页 > 面试经验 >

柠檬微趣凉经-C++客户端开发工程师

优质
小牛编辑
195浏览
2023-03-28

柠檬微趣凉经-C++客户端开发工程师

时间线

  • 7.14 投递
  • 7.15 笔试
  • 7.22 一面
  • 7.25 主管面
  • 7.26 感谢信

一面(60分钟)

(面试官人很好,会引导你回答问题)

  • 自我介绍
  • 用C++做过什么项目
  • float、double多少个字节,存储方式
  • 一个指针多少字节,能指向多大的内存
  • new这个关键字的功能
  • new申请的内存是连续的吗,在物理内存上是连续的吗?
  • vector原理
  • map实现
  • unordered_map实现
  • 哈希表数据冲突怎么解决
  • 链地址法优化策略
  • 左值右值,右值存储在哪个内存区域
  • 右值引用的作用
  • 智能指针的定义 你在实现的时候会做哪几个功能
  • bind
  • lambda
  • 解释一下快排 各种情况下的复杂度
  • 具体什么情况下是n2
  • 快排怎么优化

算法题

  • 主串target 1001010111 子串pattern 1010101(额外条件:子串最后一位是1)
  • 求子串是否在主串中出现过
  • 写了个O(n)的简单解法:
//计算掩码串mask 
mask = 1;
while(mask<pattern){mask *= 2;}
mask--;
//使得mask长度和pattern相同但是mask全为1
while(target >= pattern){
    // 判断target在掩码内的部分是不是和pattern匹配
    if((target&mask) == pattern){return true;}
    target >>= 1;
}
return false;
  • 然后面试官开始教我这种问题效率最高的一种解法是怎么工作的
    直接把target和pattern相与得res,其中res中的1即为下一次匹配的起点
    以此用上了额外条件(可以写一写感受一下)
    在这之上再进行拓展,用到了信息量压缩算法(我的知识盲区)

反问:

  • 面试官的部门
  • cocos和U3D在公司的比例

主管面(40分钟)

  • 自我介绍
  • 游戏开发方面做过什么努力
  • cocos的初始印象
  • 为了游戏性能考虑,有什么注意事项
  • C++从代码到可执行文件的步骤
  • 动态链接静态链接的区别
  • STL常见容器的底层实现
  • map、unordered_map
  • C++野指针怎么出现、如何避免
  • 单链表有那些形状
  • 链表相交怎么找相交节点(再加上环呢)
    PS:这里问了十分钟 各种情况 最后问表现的时候还让我回去想想这个

算法题

  • 链表A1 A2 A3 A4 ... AN
  • 重排成 A1 AN A2 AN-1..
  • lc原题

反问

  • 面试官负责的游戏
  • 公司作息
  • 面试表现
#柠檬微趣校招#
 类似资料: