字节跳动提前批算法岗面经(已offer)
2小时6道编程。不允许跳出,白板编程。
1. 链表奇偶翻转(10)
输入是1->2->3->4这样的文字,因此可以不管链表这个概念,直接奇偶对调就能过,注意最后一个数是奇数位置的话不用对调。
2. 找出不一样的数(10)
一个数组,只有一个数字出现一次,其他的都是出现了两次,找出那个不一样的。
直接用字典记录即可,最后遍历字典键值就行。
3. 给出硬币的面值,和一个数,问这个数最少需要多少个硬币凑成(20)
思路:dp,i个硬币,j个面值。数很小,用不到滚动数组优化。
4. 操作游戏:给出一个数,如果是奇数,+1,;偶数,除2,问执行多少次到1(20)
直接模拟
5. 几何题:给出若干个点((0,0),(1000,1000)范围内),问这些点能不能用x=a,y=b覆盖,如果能,输出(a,b)字典序最小解,不能覆盖输出(-1,-1)
思路:枚举各种情况,存在多种解需要字典序,只可能是:1.这些点共线,且线平行于坐标轴;2.只有两个点。对于唯一解的情况,对于每个x坐标,最多只能有一个位置可能有>2个点,y同理,如否,输出-1,-1;如是,且存在>2个点的x坐标和y坐标,直接输出;否则,如果只有x坐标存在大于2个点的情况,那么x=a之外的点有且只有一个(否则y坐标不可能没有位置>2个点);同理对y坐标存在大于2个点的情况也这么做。
【我这个题只过了80%,不知道哪个边界数据卡了】
6. Python glob函数实现。
判断模式串和待判定串是否匹配,返回true或者false
难点:通配符*的处理。
Trick:直接return true能过71%。
一面:
介绍项目,5分钟,问基础
多种排序时间空间复杂度
多进程和多线程的区别,python多进程怎么实现。
Python dict怎么实现,和list相比有什么区别,set呢。
Is 和==区别。(is是同一个物体,==是值相等)
全局解释器锁(锁一个线程,但是会导致慢的问题)
LSTM和RNN的区别
Lstm激活函数有哪些不同(tanh,门控,不能用relu)
Lstm如何实现类似res的机制
手撕代码(后台没有测试数据,可以自己设):
给出任意长数组的top100。(优先队列)
二面:
求数组中的中位数:
Naïve的想法:排序后直接算(NlgN),这样不好,有O(n)解法。
O(n)解法是分治法,类似快排的方法分治。返回这一部分的最后一个数。
通过奇数偶数讨论,奇数调用一次,偶数调用两次算出来两个数。
堆区栈区
全局解释器锁
Python内存管理和垃圾回收(其他语言是判断可用的,Python是判断不可用的,因此会泄露,通过引用计数的形式。如何改进?)
三面:
项目介绍(10min)
如何判断过拟合
模型规模评估
半监督方法
Earlystopping
截屏提取网站链接任务
三面加面:
介绍项目20min
C++多态
虚函数
Mobilenet(depthwise,pixelwise拆开,v2—瓶颈层,v3神经架构搜索)
手撕代码:leetcode39
四面:(节奏极快)
介绍项目(10min)
什么是傅里叶变换
空间变换的几种形式
图形学光栅化
Opengl缓冲区有哪几种
3D重构算法原理
3D凹凸面最高点最低点求法(漫水法,或者小球梯度法)
(因为我考过计算机四级证)
TCP三次握手四次挥手,为什么要挥手
TCP半连接SYN攻击
TCP滑动窗口
Linux系统启动过程
同步io和异步io的区别
进程间通讯的方式
二级缓存
C++构造函数和析构函数
C++三道基本语法改错题
以上是内推小仙女最近内推的一位面试通过的同学的面经,还没投递的你快快投递吧!~
「校招提前批」
【内推码:TBCSK8P】
投递链接:https://job.toutiao.com/campus/
投递时间:6 月 16 日- 7 月 16 日 16:00
面向对象:在 2020 年 9 月至 2021 年 8 月期间毕业的学生
实习内推链接:https://job.toutiao.com/s/v7LAcm
社招内推链接:https://job.toutiao.com/s/vRCAV6
使用内推可优先简历筛选!
简历直达部门HR!
进度可帮查!
杜绝投递石沉大海!