面试题目演练

字节跳动数据平台提前批 一面

预计:凉
首先还是自我介绍
第一道算法题是二分搜索,水题

二分搜索的面试题,一般都不能。


第二道题是设计一个LRUCache,楼主忘了什么是LRU,然后就华丽丽的写错了

LRU Cache需要用到哈希表和双向链表

这里推荐使用C++, 可以直接使用STL库中的双向链表,会使用的迭代器。


之后是C++题,指针和引用的区别,楼主答得有点片面,在面试官提示下完成的解答

指针和引用的区别是比较简单的问题,尽量答全面一些。


接下来是一道操作系统题:linux进程通信的方式,由于楼主答得太差,就没接着问

linux 进程间通信包括管道,套接字,消息队列,共享内存,信号量,这个也是一道必考问题。


然后是数据库题,首先是left join和right join的区别,然后是A表leftjoin时B表有重复,楼主答错了,被面试官教做人
之后时spark,spark的excutor的内存结构,当时就懵了,楼主差点答到虚拟机上,然后只能不会告辞
之后问了楼主在实习期间做的优化,然后就没有然后了

 

有一些岗位数据库的问题问的比较难, 这个考察多表查询内容。

 

我是分割线---------------------------我是分割线

从退役之后到现在没咋准备,写写自己找实习的经历。
首先是海投了数据岗

 

 

京东数科(大数据开发实习)一面

预计:凉
由于手机信号不好,导致很多次听不清楚面试官的声音,就很难受
回忆:


首先问了一下实习时间之类的。


介绍了一下项目,问了一下hadoop优化,因为我的项目没啥可优化的就扯了扯数学上的。


问了C++的继承和多态,一紧张说反了。

C++ 继承和多态是必问的, 是一个比较简单的问题

接下来问了专业课程包不包含Java啥的,答全部自学


接下来问了快排的原理,TCP的三次握手,三次握手感觉答得不行

快排的原理直接回答paration思想,TCP三次握手属于必考内容


问了一下HIVEQL,我简单答了一下原理和分区,但是答得不好。


楼主数据库基本不会
接下来问了什么没听清楚就只能说不知道了……
照例问了一下京东数科的工作内容,然后就被迅速挂掉了……
总体来说就是面向对象哪里没有组织好语言,然后HiveQL掌握的不是很充分。
一点建议就是一定要把自己简历上的东西掌握熟悉了……


 

滴滴(地图事业部)一面

预计:凉的几率挺大
今天的信号依旧是蜜汁中断了一下
首先照例问了一下实习时间
首先是有向图判环,秒了


中间就是问了一下我的 spark 项目
接下来问了 spark 任务划分,还有广播变量,以及广播变量是不是复制出去的


然后是机器学习算法,我说了解的不太深,然后问 logistic 回归的损失函数我就 GG 了


之后提到之前是做 CV 的,然后问了一下 CNN 的参数量


最后问了一下 hadoop mapreduce 和 spark 的区别


最后是夺命算法题最大连续子序列和

这道题目是一道比较基础的动态规化问题。


 

地平线 二面

预计:翻车
面试官照例问了一下项目
接下来是问了一下项目,问的很仔细
然后就是喜闻乐见的翻车时间
算法题1;实现一个c++ unique  

一般很少出现直接写模板unique的,一般常见的考法是数组去重, 就是一个双指针的实现。

iterator My_Unique (iterator first, iterator last)
{
  if (first==last) return last;
 
  iterator result = first;
  while (++first != last)
  {
    if (!(*result == *first)) 
      *(++result)=*first;
  }
  return ++result;
}


结果:翻车,原因是记错了实现,应该直接赋值,我想的是交换,就翻车了?
算法题2:二叉树非递归的后序遍历

二叉树的非递归遍历也是一个常考的内容,一般会先写出递归形式的后续遍历,然后写出非递归遍历。
结果:认真的分析了半天栈序之后,终于写对了
今天的收获:
必须要写点题了……


 

滴滴(地图事业部) 二面

夺命连环面……
没想到进了二面,不得不说滴滴的面试体验非常好
上来先来两个算法题,不知道和我面的部门有没有关系,4道题里面有三道是图论题
赌上图论选手的尊严:
1.二叉树最浅叶子节点,秒
2.DAG上起点到终点的所有路径,想了个dfs差点写挂
然后就是闲聊时间
今天的收获:
刷题……

 

第一题用层序遍历可以解决,BFS
 

星环科技大数据开发实习 一面

预计:跪
面试官是teamleader,然后问了很多基础的问题
首先是java的多线程和锁,jvm虚拟机,java类加载机制(其实是双亲委派模型)
java三连之后,问了一下C++虚函数和纯虚函数的区别,没答上来。
然后问我有没有用过spring,没用过就放弃了
接下来是C实现面向对象,我只答了封装和集成,多态实在不知道怎么实现
然后是python,python的多线程,还好我之前做过就简单答了一点
然后是SQL,突然明白自己的读法和面试官的读法不太一样……
1.sql随机取一个值,不会……
2.sql找出重复的,想了一个两个select语句的方法,但是面试官说有一个select的方法……。
然后就是喜闻乐见的闲聊阶段
今天的收获:
1.不能准备的过于局限,因为大家问的都不一样
2.得准备下数据库和sql的面试题了……

好长时间没更新了,因为楼主拿滴滴offer了……
说不定会变成秋招系列……

 

同步和异步的概念


 

字节跳动C++开发工程师提前批一面凉面

直接上问题

开头撸一段代码,用两个栈去实现一个队列,楼主写出来后面试官又让实现模板(平时模板用的少,没写出来),还问了模板的底层实现(orz)

 

作者可能是用数组实现的, 如果用C++ STL实现没有这个问题。

 

然后问操作系统

线程,进程区别,线程进程通信方式,线程在什么场景下才要使用(感觉答得不好)

进程是操作系统资源分配的基本单位,线程是操作系统调度的基本单位,进程间和线程间通信问的比较多。

总而言之:

  • 需要频繁创建销毁优先使用线程。
  • 需要大量计算的优先使用线程。
  • 相关性较强的使用线程,相关性较弱使用进程。
  • 可能要扩展到多机分布使用进程,多核分布使用线程

 

然后问计算机网络

在百度输入URL返回界面,这整个流程是怎么样的(之前好好背过的,面试脑袋一热全忘了,说了个大概)

DNS域名解析,TCP连接建立,HTTP请求发送,HTTP响应接收

然后问了传输层协议有哪些

TCP,UDP

TCP,UDP区别,TCP可靠的实现方式(三次握手,快重传,巴拉巴拉),TCP三次握手(为啥不是两次呢),这些都是老问题了

然后问了C++(我一度以为面试官不问了)

C++和C的区别(扯了一大堆,没答到点上,后来面试官提示说C++有类,C没有)

这是一道很简单的题目。

然后就问了多态,就是虚函数那些

后面还问了C++和JAVA的区别(说了垃圾回收,没答到点上,面试官说还有跨平台) JVM虚拟机

之后问了sizeof(指针)的大小(32位 4字节,64位 8字节)

然后问32位机上一个结构体(有char,int,long),这个结构体用sizeof有多大(我随便蒙了个13,忘记long是多少位的了)

之后问了const和define的区别

1、编译处理阶段不同:define是在预处理阶段进行宏展开,const是在编译运行阶段。
2、类型和安全检查不同:const常量有具体的类型,在编译阶段会执行类型检查,而define没有。
3、存储方式不同:const常量会进行内存分配(C++中,对于简单类型的临时常量会保存在符号表里面进行替换,而不会分配内存),而define仅仅是展开,不会分配内存。

 

define的作用,还让实现一个define函数(用的少,凉)

后面面试官就问还有啥问题没(每次这个问题就是让我最头疼的问题,有人可以说说看这个问题怎么问呢)

orz,凉凉

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值