在数据结构和算法中,最重要的两个指标是什么? 如大家所了解的在数据结构和算法中评估一个函数最重要的两个指标是时间复杂度(Time Complexity) 和空间复杂度(Space Complexity) 。在大多数的算法中空间复杂度相较于时间复杂度更易控制也更容易计算所以算法很少因为内存空间的原因而被限制。tips1. 算法调试过程中如果出现了内存不够用的问题大概率是由于算法之外的问题。2. 一般情况下leetcode空间最大可以申请到1e7这个量级左右也就是说最大可以创建一个长度为 107107 量级的数组不同语言可能会有所波动该数据仅供参考。对于一般函数的空间复杂度只需要考虑该函数中使用的数据结构的空间大小就可以算出该函数的空间复杂度。对于一些特殊的算法来说空间复杂度则是难以计算就比如递归函数。该题是求斐波那契数列中第 i 个元素实现起来很容易代码如下int fib(int n){ if(n 2) { return n; } return fib(n-1) fib(n-2); }思考这个算法的空间复杂度 可能大多数人认为是O(1)因为在这个函数中没有引用空间复杂度超过O(1)的数据结构 只有单个的变量值所以该算法的空间复杂度是O(1)。但是事实并非如此上述算法是通过一个标准的递归函数来实现的递归函数虽然没有直接使用空间复杂度超过O(1)的数据结构但是却间接地通过函数运行时栈进行引用了空间。