我在回顾一些面试的大O表示法,并且遇到了这个问题。 for i = 1 to n do:
j = i
while j < n do:
j = 2 * j
简单吧?外循环提供了n个步骤。并且这些步骤中的每一个我们执行分配j=i的单个步骤O(1),然后从j = i步进while循环的log(n-j)或log(n-i)。我认为时间复杂度是O(nlogn),但答案是O(n
我有一个函数来查找排序数组s中是否有数字,这些数字加起来就是给定的总和x。我想知道这个功能的大喔复杂性是什么。我认为它运行在O(n),但我不确定。 功能: def sumInside(s, x):
# Two indices that will be compared
l = 0
r = len(s) - 1
# Go through the array