Time & Space Complexity 时空复杂度全解
leetcode卡使用Big O Notation优化我们的代码。介绍什么是Big O?作为软件工程师,我们应该关心我们正在编写的代码的性能。在理想的世界中,我们希望我们的算法和应用程序架构既高效又具有执行力,但是,有些算法比其他算法更有效。在确定我们的代码是否可扩展时,由于机器运行速度和性能的变化,可能很难在时间和空间复杂性方面传达成本,但这正是Big O符号派上用场的地方。 Big O是对算法效率的简化分析。 algorithm只不过是执行某些任务所需的一系列步骤。如果我们把每一步都当作一个基本的计算单位,那么一个算法的执行时间就可以表示为解决问题所需的步数。示例: O(1), O(log(n)), O(n log(n)), O(n^2)。 O代表time和space复杂度的顺序。在Big O表示法中,n代表函数或算法中input size的复杂性。通常,输入大小由算法中n的最大因子决定。 Big O是独立于机器的,因为它检查算法中涉及的基本计算机步骤。在为算法实现任何解决方案后,最好重构您的解决方案以考虑Big-O时间和空间复杂性。