您的位置:   网站首页    行业动态    70%的人都跪的算法题,我要怎么准备才能拿下谷歌?

70%的人都跪的算法题,我要怎么准备才能拿下谷歌?

阅读量:3711492 2019-10-23


众所周知,“我太难了”一向是G家求职者的常态。不少九章学员这样形容大厂面试难度:
Google ≥ Facebook > Microsoft > Amazon
G家面试难上天的其中一个原因是它注重算法。拿new grad举例,通常4轮onsite至少有3轮都考算法,甚至还有在电面中就问算法的情况。
在各类算法题中,线段树是一个强大又好用的数据结构,能很好地解决动态接受单点修改而同时快速返回区间信息的需求,并且降低你的思维复杂度和 coding 的复杂度。
前几天,我们还收到学员反馈:G家和FB面试都碰到了线段树,还好这两位都准备充分,这大概就是“有准备的都有恃无恐,还不会的永远在骚动“吧~

线段树是什么
线段树(segment tree)是用来存放给定区间(segment, or interval)内对应信息的一种数据结构。
线段树主要用于高效解决连续区间的动态查询问题,由于二叉结构的特性,它基本能保持每个操作的复杂度为O(logn)。
从数据结构的角度来说,线段树是一种典型的二叉树形结构。它将线段区间组织成树形的结构,并用每个节点来表示一条线段。

线段树和树状数组的区别
在讨论线段树的时候,很多人同时会提到另一个类似的结构——树状数组。
树状数组是一种用于高效处理对一个存储数字的列表进行更新及求前缀和的数据结构。

树状数组和线段树这两个东西,看起来挺像的,因为它们的名字里都带“树”。但其实,这两者之间,还是有一些地方是不同的。
线段树和树状数组的基本功能都是在某一满足结合律的操作(比如加法,乘法,最大值,最小值)下,O(logn)的时间复杂度内修改单个元素并且维护区间信息。
但是两者最大的区别是,树状数组只能维护前缀“操作和”(前缀和,前缀积,前缀最大最小),而线段树可以维护区间操作和。
有懂算法的大佬说过,能用树状数组解决的问题,用线段树都能解决,但是解决的方法和难度都是完全不一样的。
如果各位同学想要更好的掌握这个知识点,可以来参加我们九章算法推出的《线段树和树状数组》。

01
课程亮点
· 课程易理解,掌握更容易
只需4节课,精讲4道高频面试题。把握线段树和树状数组在面试中的要点,让你从容解决线段树和树状数组算法题。
· 强大师资力量,助你一臂之力
ACM金牌选手授课,授课内容由浅到深,内容广泛,带你在学习过程中离顶级面试越来越近。
· 课程互动,即学即练
采用互动课模式,课堂上即时与老师互动,课后有实时跟进的练习题,达成双向沟通,获得更好的学习效果。
02
讲师介绍

免费听课
《线段树和树状数组》一共四章,详细讲解线段树和树状数组的基础和面试中的常见技巧。
这门原价$199的课程,现在只需邀请2位新朋友(未购买过九章课程的同学),即可找班班「九章-廖廖」领全额抵价券,0元听课!

活动至北京时间 2019/10/27(周日)下午6点结束哦~
据说点“在看”的都拿offer了

在线QQ咨询,点这里

QQ咨询

微信服务号