字节跳动Java开发社招二面凉经

一面

算法题

  • 二叉树中和为某一值的路径;
  • 股票的最大利润;
  • SQL 题。

总结:两道算法题剑指 offer 上都有,我面试的时候第一题写出来了,第二题不要求写代码,就说思路,我刚开始说了一种暴力解决的方法,时间复杂度 O(n2) ,后面面试官问有没有 O(n) 的算法,后来想了一下也回答出来了,都不算难。SQL 题挺简单的就不说了,但也提了个醒,牛客上的 SQL 题也可以去做做,就不知道别的厂子会不会有 SQL 题,希望大家评论区分享一下。

我 19 届毕业,感觉社招的算法题比校招会轻松些,最大的感受,社招算法题不需要运行 ac ,面试官看看思路就好了。(ps:也可能是就才面了头条,不知道别的厂子是不是这样哈)。

面试题

  • 用 id 做主键和用手机号做主键,怎么选择;
  • 聚簇索引和非聚簇索引的区别;
  • 怎么实现分布式锁;
  • redis 怎么实现分布式锁;
  • redis 为什么速度快。

总结:原谅我记性太差了,可能还问了别的,想不起来了,但主要就问了些数据库的知识,而且也不难,准备的很多都没问。

一面总结

一面感觉面试官很和蔼,感觉就年龄差不多。举个栗子,问我 用 id 做主键和用手机号做主键的区别 的时候,我第一反应说了一句:"用手机号做主键 B+ 树高度相对要高,你懂我意思吧 😂",面试官笑了笑说:"我 get 到你的点了,但需要你说的再具体一点"。

二面

算法题

  • 输出一个比输入字符串刚好大的字符串,例如 1234 -> 1243 /微信群抢红包。
  • SQL 题。

总结:面试官刚开始问我的算法题是 输出一个比输入字符串刚好大的字符串,我刷题太少了,这道题没见过,然后想了大概两分钟,面试官说如果没思路就换一个吧,所以就换成后面那个 微信群抢红包 的题了,这个的实现网上也经常看到,不难。

面试题

  • Dubbo 容灾有哪几种,说一种的使用场景;
  • ES 怎么容灾的。

总结:Dubbo 容灾,我认为是 Dubbo 的 9 种容错机制,failover、failfast、failsafe 等,如果不是这些的话,希望大家下面评论区予以指正。容错机制这些其实我知道,但是讲的有点啰嗦感觉。然后 ES 的容灾,我说的是用分片和副本分片来实现的,不知道对不对,同样不正确的希望予以指正。

二面总结

二面完了,面试官跟我说谢谢参加面试,我就知道凉了。

整体总结

  1. 还是重视基础,特别算法题还是要多刷;
  2. 我经常表达的不够简练,有些部分讲的有点啰嗦。
#字节跳动##社招##面经##Java工程师#
全部评论
加油老哥
3 回复 分享
发布于 2020-02-20 22:58
用id做主键和用手机号做主键,我觉得应该是这样,id自增:有序,手机号无序。我们使用MySQL,选择InnoDB引擎的时候,有且仅有一个聚焦索引,聚焦索引的逻辑顺序和物理顺序一致。所以当我们新加数据时候,我们如果采用手机号作为主键,则B+树会产生页分裂,同时会产生内存碎片,加之索引调整需要代价,所以用手机号作主键不合适。而当我们用id作主键,id自增,就没有上述问题了。  主语你回答的B+树高度更高。可能是出于每页保存的元素而言,手机号码占用空间更大。但是总体来说,B+树在MYSQL引擎里面最后的高度基本都是2-4层,IO次数基本没有什么区别。4层B+树,可存百万级别以上数据
3 回复 分享
发布于 2020-03-24 04:07
请问抛硬币那个应该怎么处理啊?
点赞 回复 分享
发布于 2020-02-25 22:42
id和手机号当主键的原因是不是,手机号无序在更新的时候导致聚簇索引页分裂,而id为主键的话是有序的。另外id的长度一般比手机号要断,这也符合当主键的特性
点赞 回复 分享
发布于 2020-02-25 09:27
老哥,内推的吗?
点赞 回复 分享
发布于 2020-02-25 03:37
额,没有问项目吗
点赞 回复 分享
发布于 2020-02-23 16:38
感觉是不是应该用id做主键回答 mysql新增数据顺序插入问题啊
点赞 回复 分享
发布于 2020-02-22 23:59
楼主为啥问的都是分布式方面的问题
点赞 回复 分享
发布于 2020-02-21 00:42
我思考了一下 我今天参加的面试 面试官没有和我说谢谢😂
点赞 回复 分享
发布于 2020-02-20 22:15

相关推荐

07-06 21:46
已编辑
中山大学 算法工程师
✅第一面和二面连在一起面的,有部分题记不住,算法都是先讲思路,再白板写代码,然后给面试官解释代码含义。1、算法:找第K大的数(快排)2、算法:从n个数字的数组中任取m个为一个组合,返回所有组合,顺序不一样的算一个组合(递归遍历+回溯)3、LR损失,推导,并且求导4、L1、L2的区别, L1为什么图像是菱形我说菱形可以用取点值画出来,面试官问怎么取点,我就有点懵住了,面完才想起来菱形应该是 |x| + |y| = 1 的函数图像5、梯度下降系列算法有哪些我有点蒙住了,后来才想起来应该问问 momentum adam 之类的算不算6、xgb介绍一下7、你知道有哪些损失函数?8、FM 与 LR对比一下9、softmax 与 二分类 比有什么特点。✅三面面试官很严肃,而且问的很细,有的题还很偏1、看过什么论文2、看过哪些开源项目3、看过哪些开源框架的源码?看过tensorflow源码没?4、看过xgboost源码没?5、开源项目一般就训练个模型吧,就很少量的代码。看过什么大的工程的源码吗?没看过源码别问了QAQ6、让你学 C++ 你认为你多久可以上手?7、算法:一个排好序的数组 arr 中,可能有重复数字,给定一个数target,求 arr[i] + arr[j] = target (i < j) 的对数。提了两个方法:一个字典记录出现过的数字和对应的索引列表(因为可能有重复,所以是列表)。然后一边遍历一边查询字典中是否出现了 target - arr[i],如果有则计数。双指针。但是有重复的数很麻烦,我考虑了一般的重复数情况,和两个重复数之和恰好为target的情况。但是面试官说还有别的情况,我就想不出来了,然后面试官说先到这吧。。8、auc介绍一下,给出计算公式9、xgb怎么并行运算(除了自带的并行找特征分裂点,还说了一般模型的按数据和按特征并行)但是面试官一直追问详细的并行方法。10、xgb与LR各自的优缺点11、LR为什么更容易并行12、有哪些常见的模型优化算法13、adam公式写一下(同时介绍了adam是momentum和RMSprop的结合)14、RMSprop为什么比adgrad好?15、为什么 adagrad 简单求和不好?16、GMM介绍一下,损失函数写一下17、EM算法介绍一下18、进程线程的区别?进程和线程相比有什么好处?19、用户态和内核态📳对于想求职算法岗的同学,如果想参加高质量项目辅导,提升面试能力,欢迎后台联系。
查看27道真题和解析
点赞 评论 收藏
分享
07-03 13:15
门头沟学院 Java
手撕:合并n个链表你用了优先队列(Priority Queue),这种做法本质上属于哪类排序?该算法的时间复杂度和空间复杂度各是多少?除了优先队列+虚拟节点方案,你有没有想到其他更优解?对“基本有序”数组,哪种排序最优?为什么?请讲解快速排序的核心思想与流程。如何快速从无序数组中找出第K大的元素?(如第3大、第10000大等)最优解可否用堆?可否用快速选择(Quickselect)?用3–5分钟重点介绍一个你参与度高、技术含量突出的项目。你了解哪些开源RPC框架?请详细讲一下阿里Dubbo的注册/发现机制、核心功能及优缺点。令牌桶限流原理是什么?关键点在哪里?你还知道哪些限流策略(固定窗口、滑动窗口、漏桶等),它们各自优缺点是什么?你对Spring源码做过哪些研读?关注了哪些模块?在Spring MVC中,IOC容器的两个最核心职责是什么?能否详细讲解Spring容器的启动、类加载、Bean定义解析、依赖注入全过程?JVM类加载双亲委派流程是怎样的?如何打破它?请描述Java内存区域:堆、栈、方法区(永久代/元空间)、本地方法栈等。哪些区域可能抛出OutOfMemoryError?为什么Java 8将永久代改为元空间?它们在内存上的区别与优劣?为什么要把String设计为不可变?StringBuilder与StringBuffer有何区别?反射的优点和缺点有哪些?你是明年6月毕业吗?毕业后有考研打算吗?还是直接找实习/全职?实习时长打算多久?毕设时间安排如何?反问:技术团队主要负责哪些业务场景?部门日常开发中会用到哪些主流中间件或框架?对于本科生而言,哪些基础知识和能力比较重要?如果想深入某个方向,应当如何规划学习?
查看29道真题和解析
点赞 评论 收藏
分享
评论
11
101
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务