考虑以下问题:
给定n个元素的数组R,构造矩阵M,使得M [x,y] =Σ k = x ... y R [k]
我需要计算紧的渐近边界...例如Θ(算法)
我相信这是O(n³),因为你有两个嵌套的for循环,每个循环都有n个操作,然后在内部for循环中你最多在数组R上添加n个以生成插入到M中的和[X,Y]。
我的直觉在这里是否正确?我该如何严格证明这一点?
答案 0 :(得分:2)
您可以在O(n²)
中只使用两个嵌套循环,在上面的行中采用记忆的∑k=x…(y-1)
解决方案:
for x from 1 to n, y from 1 to n
if (y < x)
M[x,y] = 0
else if (y == x)
M[x,y] = R[y]
else
M[x,y] = M[x,y-1] + R[y]