【字节跳动】C++岗-多媒体开发实习(视频架构组)

基本情况介绍

暑假将近,最近半个月突然有了紧迫感,便开始找实习,第一个投的就是头条
内推是在boss直聘上面直接联系的,很快就有了回复,没有笔试直接约了面试时间

楼主之前没有互联网公司实习经验,基本上是在实验室打杂
简历上写了两个个人项目,一个是图像编解码,一个是自动问答系统。
然后就是hackthon,数模,app比赛了。

第一轮(45min)

基础题为主,没有问项目

  • 自我介绍
  • 为什么tcp4次挥手
  • virtual function 机制
  • TCP/IP协议族介绍
  • 进程通信方法
  • vector的实现

还有一些,不过都是基础题。

  • 手写两个基础算法:
    • 层序遍历二叉树
    • 链表的归并排序

还有什么问题?

  1. 问了进组之后能够接触的业务量大小
  2. 组内视频架构基于是否基于开源项目,基于什么开源项目?

面完之后问我后面还有时间吗?我回答能不能改天,于是就约了三天后

第二轮(1h)

  • 自我介绍,这一轮比较详细,面试官多次打断,问了一些项目的问题,大概25分钟
  • 如何检测视屏流中的场景切换,我提了motion vector和基于 Y channel 的 histogram 计算熵值的方法
  • 画一画线程状态机
  • ping 发生了什么, 我答到ICMP就被中断了
  • ARP协议, NAT协议
  • PNG/PNG-8有损无损,如何实现
  • 视屏传输为啥要用YUV不用RGB: 主要是down sample, luminance 重要性大于chrominance
  • 聊一聊C++是如何实现debug模式的,我答了一下debug模式下加的debug header 对编译后的文件的影响
  • 手写两个基础算法:
    • 动态规划路径数量
    • 翻转链表

第三轮(二面结束后5分钟,45min)

  • 一上来盯着项目的几个细节问问题,比如:
    • 为什么jpeg不用FFT用DCT
    • 讲讲DWT
    • 你如何实现的XXX等等
  • 之后问了几个非主流的C++题目,大概是:
    • c++的一些未定义动作: delete ,delete[] 析构继承体系中有virtual 析构函数的对象,编译器的坑
    • 通过内存越界修改其他作用域中的变量
  • 写算法:
    • 一个unsorted array, 输出第k小的数,平均复杂度尽可能小。
    • 给了一个O(n) 基于partition的递归
  • 画风突变:
    今后的职业规划 我(黑人问号?) 于是开始愉快的聊天

HR(三面结束后,15min)

  • 聊了聊你简历中间的一些经历
  • 让我做好头条实习强度的准备

总结

整体来说,面试难度是逐层递加的。头条面试的效率很高,从投递约时间到拿到offer在一周之内。可能是实习,开发岗,对算法的要求不算高,除了三面小哥一个刁钻的问题外楼主基本上还是回答出来,并做了一些follow up。

发表评论

后才能评论