拼图跳跃游戏复杂性

时间:2014-04-18 16:49:33

标签: algorithm complexity-theory time-complexity

我的问题是针对此处提出的问题: Interview puzzle: Jump Game

最高回答称它在O(n)时间内运行。它说它可以做到这一点

  

因为每个元素只需要考虑一次(可以跳过第二次考虑的元素)

但是,只检查我们是否已经考虑过一个元素,每个元素需要一个恒定的时间,所以它应该采用O(n^2),对吧? O(n)考虑每个新元素,并O(n)排除我们已经考虑过的元素。为什么不是这样?

1 个答案:

答案 0 :(得分:0)

你不需要检查你是否已经考虑了某个特定元素,你只需要跟踪你已经检查过的索引,以及最高的v(除了刚跳过的那个) to)到那一点的阵列。

然后你可以从那里继续检查,将每个新元素与之前的最大值进行比较