5.4 本章小结
在编程面试的时候,面试官通常对时间复杂度和空间复杂度都会有要求,并且一般情况下面试官更加关注时间复杂度。
降低时间复杂度的第一种方法是改用更加高效的算法。比如我们用动态规划解答面试题42“连续子数组的最大和”能够把时间复杂度降低到O(n),利用快速排序的Partition函数也能在O(n)时间内解决面试题39“数组中出现次数超过一半的数字”和面试题40“最小的k个数”。
降低时间复杂度的第二种方法是用空间换取时间。在解决面试题50“第一个
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
剑指Offer 文章被收录于专栏
《剑指Offer:名企面试官精讲典型编程题》剖析了50个典型的程序员面试题,从基础知识、代码质量、解题思路、优化效率和综合能力五个方面系统整理了影响面试的5个要点。全书分为7章,主要包括面试的流程,讨论面试流程中每一环节需要注意的问题;面试需要的基础知识,从编程语言、数据结构及算法三方面总结了程序员面试的知识点;高质量的代码、解决面试题的思路、优化时间和空间效率。