当前位置:主页 > 查看内容

字节Android开发岗首战算法被惨虐,复盘两个月再战拿下2-2

发布时间:2021-06-09 00:00| 位朋友查看

简介:每一个程序员都拥有一座大厂梦我也不例外之前面试字节跳动竟然被算法问倒了很多算法都没解出来解出来的也还不是最优解才二面就凉凉了。回去之后也潜心复习了准备了二战如今终于进入了字节跳动被录用定级2-2。 一、首站字节被挂 对于这个独角兽企业LZ当时报了……

每一个程序员都拥有一座大厂梦,我也不例外,之前面试字节跳动,竟然被算法问倒了,很多算法都没解出来,解出来的也还不是最优解,才二面就凉凉了。回去之后也潜心复习了,准备了二战,如今终于进入了字节跳动,被录用,定级2-2。

一、首站字节被挂

对于这个独角兽企业,LZ当时报了很大的期望,但是没有确切的了解面试情况(对自己蜜汁自信),没有了解到字节对算法这么看重,稍稍懈怠了下,没想到直接挂了,字节面试流程还是很快的,意识到不对的时候已经晚了……

  • 给定一个整型数组,查找三个元素相加等于0的所有三元组,要求去重
  • 给定一个数组,调整该数组,使其满足堆的性质(初始化建堆)
  • 判断一个链表是否为回文链表,说出你的思路并手写代码
  • 你知道哪些排序算法,这些算法的时间复杂度分别是多少,解释一下快排?

想起来的就这些了,当时被问得一脸懵逼,半小时憋不出几行代码来,浪费了一次宝贵的面试机会。

我个人其实也不是特别喜欢做题,好玩的事情太多了,但是没办法,现状就是这样,Android程序员这几年太多了,竞争越来越激烈,就各种手段卡你呗,说不内卷那也是不可能的。我之前也是温水煮青蛙,出去面试了才被教各种做人!

你没有好的公司项目背景,只有做题。(除非学校,学历,项目经验,开源项目,公司背景等有不错的优势)

二、二战字节

字节一面:

  • Activity生命周期,每个回调方法的作用是什么
  • 事件的分发机制
  • 内存泄漏
  • 遇到过滑动冲突吗?滑动冲突的解决方法
  • Hashmap原理
  • Hashmap扩容机制
  • 手撕双重校验锁,volatile的作用
  • synchronized和volatile的区别
  • 线程池的参数
  • 异常机制
  • synchronized修饰static 方法和修饰普通方法有什么区别
  • 双亲委派模型,为什么要这样
  • sharedPreferences的原理,多进程下是否可以使用,apply和commit 有什么区别
  • 算法题:每k个反转链表;一个长度为N的整形数组,数组中每个元素的取值范围是[0,n-1],判断该数组否有重复的数,请说一下你的思路并手写代码…

字节二面

  • 四大基本组件和作用
  • Activity生命周期,启动模式,taskAffinity,横竖屏转换,onNewIntent
  • Service两种启动模式,有什么区别。
  • 广播,广播分类。普通广播、异步广播、有序广播
  • view的绘制流程
  • Framelayout wrap_content TextView match_parent 怎么显示
  • 约束布局和RelativeLayout的区别
  • 布局优化
  • include、viewStub、merge 的使用和区别
  • mvp、 mvc、mvvm
  • 如何创建一个viewModel
  • Handler
  • ThreadLocal
  • 算法题:二叉树查找,将这条路上的结点存储;之字形打印二叉树,使用辅助栈实现,实现完后问我:不使用辅助空间怎么做。回答递归,并且递归时记录当前层数

字节三面

1.适配器和装饰模式各自特点和使用场景
2.视频编解码是怎么做的
3.三色球排序

四面(HR)

到这一步就是正常走流程了,就不叙述了……

三、二战字节前,我是如何复习的?

LZ其他技术掌握的还算牢靠,主要是算法方面有些欠缺,复习时主攻的算法。

从朋友那薅到一份《2021最新版数据结构与算法?试题?册》,硬着头皮全部啃完了,不直接看答案,先自己思考,不然很容易忘记,实在不会的看题解,看看别人的解题方法。做完了之后总结思路和常见套路。

1.哈希

  • 请说?说,Java中的HashMap的?作原理是什么?
  • 介绍?下,什么是Hashmap?
  • 讲?讲,如何构造?致性哈希算法。
  • 请谈?谈,hashCode() 和equals() ?法的重要性体现在什么地??

2.?叉树

  • 求?叉树的最?深度
  • 求?叉树的最?深度
  • 求?叉树中节点的个数
  • 求?叉树中叶?节点的个数
  • 求?叉树中第k层节点的个数
  • 判断?叉树是否是平衡?叉树
  • 判断?叉树是否是完全?叉树
  • 两个?叉树是否完全相同
  • 翻转?叉树or镜像?叉树
  • 两个?叉树是否互为镜像
  • 求两个?叉树的最低公共祖先节点

3.链表

  • 谈?谈,bucket如果?链表存储,它的缺点是什么?
  • 有?个链表,奇数位升序偶数位降序,如何将链表变成升序?
  • 如何反转单链表
  • 现在有?个单向链表,谈?谈,如何判断链表中是否出现了环
  • 随机链表的复制

4.数组

  • 写?个算法,可以将?个?维数组顺时针旋转90度。
  • ?个数组,除?个元素外其它都是两两相等,求那个元素?
  • 找出数组中和为S的?对组合,找出?组就?
  • 求?个数组中连续?向量的最?和
  • 寻找?数组中前K个最?的数

5.排序

  • ?Java写?个冒泡排序?
  • 介绍?下,排序都有哪?种?法?请列举出来
  • 介绍?下,归并排序的原理是什么?
  • 介绍?下,堆排序的原理是什么?
  • 谈?谈,如何得到?个数据流中的中位数
  • 你知道哪些排序算法,这些算法的时间复杂度分别是多少,解释?下快排?

6.堆与栈

  • 请你解释?下,内存中的栈(stack)、堆(heap) 和静态区(static area) 的?法。
  • 说?说,heap和stack有什么区别。
  • 最?的k个数
  • 滑动窗?最?值
  • 丑数前
  • 前K个?频元素
  • 有效的括号
  • 最?栈
  • 柱状图中最?的矩形

7.?级算法

  • 请你讲讲LRU算法的实现原理?
  • 为什么要设计 后缀表达式,有什么好处?
  • 请你设计?个算法,?来压缩?段URL?
  • 谈?谈,id全局唯?且?增,如何实现?
  • 最后?个单词的?度

8.动态规划

  • 斐波那契数
  • 不同路径
  • 爬楼梯
  • 零钱兑换
  • 打家劫舍
  • 编辑距离

由于篇幅限制,展示了部分内容截图,需要这些文档资料的,可以点赞支持一下我,然后【点击这里】免费阅读下载。

希望所有的程序员都能够学习起来,努力实现我们的大厂梦!

;原文链接:https://blog.csdn.net/weixin_52217015/article/details/115577367
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐