在面试过程中,最好在写完代码之后给面试官分析一下自己所设计算法的时间和空间复杂度。
把时间复杂度和空间复杂度较优的两种方法都给面试官讲解一下,看她想要的是哪种方法。
实际工作中优先选择时间复杂度较好的算法。
一、时间复杂度
定义:算法的执行时间与输入值之间的关系,用于表示算法的运行效率。
常见案例:O(1) < O(lgn) < O(n) < O(nlgn) < O(n2)< O(n3)
二、空间复杂度
定义:算法的存储空间与输入值之间的关系
主要分析是O(1) 还是 O(n),其他的不太常见
看程序里面有没有递归,因为递归是会把变量存储在递归栈的。