【发布时间】:2021-06-13 21:29:31
【问题描述】:
我正在使用以下代码:
n = input()
data = input()
out = [0] * 10
for i in range(len(data)):
if (data[i] == 'L'):
for j in range(0, 10, 1):
if (out[j] == 0):
out[j] = 1
break
elif (data[i] == 'R'):
for k in range(9, -1, -1):
if (out[k]== 0):
out[k] = 1
break
else:
out[int(data[i])] = 0
#print (str(data[i]) + " "+ str(out))
for x in out:
print(x, end = '')
-
如何确定该程序的运行时间复杂度。我已经读过 for 循环需要 O(N),那么这个程序是否会将其作为它的运行时间复杂度?
-
如何确定此程序的内存复杂度?
我已经在网上阅读了这两个概念,但我无法理解它们,如果这些是基本问题,请见谅。
【问题讨论】:
-
for循环需要多长时间来迭代其可迭代对象。它并不总是 O(n)。例如,for x in itertools.product(data, data):是 O(n^2),忽略循环体中发生的事情,因为在data与自身的笛卡尔积中有 O(n^2) 个元素。