gpt4 book ai didi

python-3.x - 这个算法是 O(1) 还是 O(n) 空间复杂度

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:40:34 27 4
gpt4 key购买 nike

我有一个家庭作业问题,要求我在时间复杂度为 O(n) 和空间复杂度为 O(1) 的程序中找到一个缺失的数字。

我觉得我对什么构成了 O(1) 空间复杂度有了很好的理解,但是我不确定将一个变量赋给给定数组中的最大值是否会使它成为 O(n) 空间复杂度。下面的代码是我专门写的

def findMissing(A):
greatest = 0
for i in range(len(A)):
if A[i] > greatest:
greatest = A[i]

我认为它仍然是 O(1),因为我试图保留的 O(n) 是包含最大值以及所有其他值的完整数组,但同时我的变量仍然与输入大小有关,所以我不确定。

最佳答案

由于您的代码在数组中循环一次,因此它的时间复杂度为 O(n)。存储仅维护 1 个变量,因此它具有 O(1) 空间复杂度。我假设您为了这个问题而放弃了 return 语句,否则,请确保您也包含了它。

关于python-3.x - 这个算法是 O(1) 还是 O(n) 空间复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57947623/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com