新智元|谷歌面试官亲授,抓住「金九银十」的尾巴!技术面试如何准备( 三 )


文章图片
还有没有比递归的深度优先解决方案更好的版本呢?不是很多 , 但也有一些 。
首先 , 不是递归的意味着可以运行非常大的值而不会崩溃 。
其次 , 使用常量内存 , 因为只需要两个固定大小的数组 , 而不需要不断增长的制表解决方案的缓存 。
最后 , 仍然是线性时间复杂度:可以在20秒内计算200,000跳 。
在求职面试中设计和实现一个线性时间、常数空间的解决方案通常都会得到一个很好的结果 。 当作者使用这个问题进行面试时 , 经常给那些使用动态规划方案的面试者一个很好的反馈 。
最后 , 作者还列出了为了准备面试和今后的工作你应该养成的习惯:
1.始终从手推一个小实例开始 。
2.注意你的解决方案做的哪些计算是不必要的 。
3.清楚地使用递归 。
4.知道你解决方案的O(N) 。
5.总是寻找机会来回忆 , 如:编写一个空函数 。
现在正值「金九银十」和校招季 , 希望大家都能找到自己心仪的工作!
参考链接:
https://alexgolec.dev/google-interview-questions-deconstructed-the-knights-dialer/
新智元|谷歌面试官亲授,抓住「金九银十」的尾巴!技术面试如何准备
文章图片