听说Facebook和Uber不考最难的这类算法了?别高兴太早!
最近网友在blind发帖询问,Uber面试不会问动态规划题,是不是真的?
底下有Uber员工表示确实不考DP,然而也有人说自己在实习面试就遇到了DP,甚至还有老哥被要求在半小时内解决 hard 动规题的。
所以Uber到底会不会考动态规划?
根据Uber员工的说法,经过公司培训的面试官确实有被要求不问DP题,而现状是很多未经培训的面试官还是有出DP题的情况。
但即使电面不考DP,onsite仍有可能碰到,上面的老兄就是活生生的例子。
求职者最怕的题,这些大厂都有考
无独有偶,除了Uber外,FB,微软,亚麻也经常会有人问,面试会不会考DP?
号称最难算法的DP,似乎成了广大求职者绕不开的“噩梦”。而从有面试经历的人现身说法来看,**以上这些公司无不例外都有出现考动规题的情况。**更不用说算法要求向来很高的谷歌了,动规题已经成了算法面试常客。
为什么大厂面试总偏爱动规题?
因为在主流的算法与数据结构中,贪心法、分治法题目不好出;搜索算法写代码时间太长了,面试中不太常见;二叉树、链表等问题题目变来变去就这么多,求职者一般都会有备而来。
而动态规划题型丰富且有足够的难度,可以很好地区分筛选候选人,所以DP越来越受到面试官的青睐。
这也是动态规划的一大难点,并且不同题型的解法没有固定的模板。更要命的是,很多同学面对动规题往往不知道可以用DP来解,很多时候还会混淆动规和递归。
所以解决动态规划问题的关键是先判断是否需要用动态规划。
可以使用动态规划的问题一般都遵循一些特点,比如提问的方式大多是:
1. 计数
有多少种方式走到右下角
有多少种方法选出K个数使得和是Sum
2. 求最大最小值
从左上角到右小角路径的最大数字和
最长上升子序列长度
3. 求存在性
取石子游戏,先手是否必胜
能不能选出K个数字使得和是Sum
只需4步,轻松入门动态规划
想要融会贯通各种题型的动态规划,在短暂、紧张的面试中准确给出解法,并写出bug free的代码,除了大量有针对地刷题外,你还可以选择九章的《动态规划专题班》,7节课帮你搞定动态规划面试题。
谁来讲
侯卫东: FLAG工程师
清华大学毕业,全国算法竞赛金牌得主,参加过ACM国际大学生程序设计竞赛全球总决赛。斩获Google,Facebook,Microsoft,Uber, Dropbox等多家offer,拥有丰富的面试和面试官经验。
针对所有类型的动态规划题,侯卫东老师还总结了一套完整的动规解题思路,只需4步,即可轻松入门动态规划。
1.确定状态是什么
2.状态转移方程是什么
3.状态的初始值是什么
4.问题要求的最后答案是什么
上完这门课,你可以做到
- 对于面试中常见动态规划题目能迅速判断并找到解题要领
- 对于动态规划变种题能找到解题的突破口并轻松解决
- 可以对动态规划算法进行时间和空间上的优化
- 面试中将不再有你不会做的动态规划题
不知道课程是否适合你?不知道老师讲得到底好不好?来试听就知道啦!
免费试听内容
动态规划的解题要领
动态规划三大类
求最值/计数/可行性
常见动态规划类型总结