【发布时间】:2020-05-03 17:40:38
【问题描述】:
我需要确认我为以下算法查找时间和空间复杂度的方法是否正确:
我有一个输入列表,我们可以以以下为例: [1,100,1,1,1,100,1,1,100,1] 让我们将给定的列表称为成本。我正在根据下面的算法修改给定的列表
我的算法:
- 循环遍历列表(从位置 2 开始)直到输入列表的末尾。
- 我们执行以下操作:cost[i] = cost[i] + min(cost[i-1],cost[i-2])
- 我们最终检查最后 2 个元素并从最后两个元素中取最小值 = min = min(last element,second last element)。
我计算时间复杂度的方法: 1. 对于步骤 1 = O(n) 2. For step 2 = O(1) + O(n) (计算两个元素中的最小值) 3. 对于步骤 3 = O(1)
因此时间复杂度 = O(n) + O(1) + O(n) + O(1) = O(n) 。空间复杂度 = O(n) [简单假设所需的空间将用于存储列表]。有人可以告诉我我计算复杂性的方法是否有效?
问候, 阿努巴夫
【问题讨论】:
标签: algorithm list data-structures complexity-theory