【发布时间】:2014-01-28 18:37:13
【问题描述】:
我正在阅读this,最后一部分的练习。
我是时间复杂度的新手。
第一个解决方案说机器人会在一个方向移动p 次,然后在另一个方向移动m - p,对于p 从0 到m,对我来说这是:
sums = []
for left in 0..m
sums[left] = 0
for right in 0..(m-left)
sums[left] += A[k - left + right] || 0
A[k - left + right] = 0
A 是输入数组,k 是初始位置,即给定常量。
据我了解,复杂性是:
O(m + m+(m-1)+(m-2)+...+3+2+1)
| -----------------------
| |
because because the inner loop
first loop
O(m + (m*(m+1))/2)
O(m + (m*(m+1))/2)
O(m^2) ?
我的错误是什么?
这个问题的解决方案指出复杂性是O(n*m),你能解释一下为什么吗?
【问题讨论】:
标签: complexity-theory time-complexity