卢誉声,Autodesk 核心数据平台和计算平台资深工程师,主攻平台架构研发。在此之前,曾任职于思科系统(Cisco Systems)。
工作内容涵盖大规模分布式系统的服务器后端、前端以及 SDK 的设计与研发,在数据处理、实时计算、分布式系统设计与实现、性能调优、高可用性和自动化等方面均有着丰富的实战经验。同时,也拥有着丰富的面试和面试官经验。
擅长 C/C++、JavaScript 开发,此外对 Scala、Java 以及移动平台等也有一定研究。著有《移动平台深度神经网络实战:原理、架构与优化》和《分布式实时处理系统:原理架构与实现》,并译有《高级C/C++编译技术》和《JavaScript编程精解(原书第2版)》等。
算法是技术领域的基石,它的稳定与否直接决定了大楼最终的高度。而当很多人面对复杂的算法问题时,总是缺乏清晰的解题思路,这种阻碍从面试延伸至晋升。
动态规划恰恰是解决问题的重要方法论,面对很多数据处理的应用场景,它在降低时间复杂度上极具优势,因此成为了大厂的考察重点。除此之外,动态规划问题还能很好地考察一个技术人的数学模型抽象能力和逻辑思维能力,可以反应个人在算法上的综合能力。
但“难学”似乎已经成为了动态规划抹不掉的标签!
基于此,卢誉声老师将结合自己丰富的工程经验和面试官经历,为你梳理出一条清晰的学习路径,即如何系统学习和掌握动态规划;还会帮你在纷繁复杂的数据结构和算法中,总结出动态规划问题的解题框架和套路。有了正确的学习方法,形成经验式的总结,难题自然迎刃而解。
具体内容上,本专栏分为以下三个模块。
模块一:初识动态规划
讲解复杂面试题的思考和解决方式。从贪心算法开始,一步步阐述动态规划的由来,并通过一个贯穿全篇的例子来展现动态规划的强大之处。通过这部分内容,你会系统了解到动态规划问题的特点和解题经验。
模块二:动态规划的套路
总结动态规划问题的解题框架和套路。结合面试真题,在有效分类的前提下,有针对性地套用解题框架,进行深入而全面的讲解。通过这部分内容,你会快速掌握常见面试题的解题套路。
模块三:举一反三,突破套路
针对几种特别易考的动态规划面试题进行总结,帮助你攻破套路。并在这些高级话题的基础上,提出设计动态规划算法的关键问题。另外,还有刷题指南。通过这部分内容,你会快速掌握动态规划面试题的进阶法门。
学习路径图:
特别说明:
本专栏所有代码将使用Java和C++两种编程语言。