【发布时间】:2015-07-04 13:31:12
【问题描述】:
我是第一次分析算法类,想知道是否有人可以帮助解决以下示例。我相信我已经解决了 O(n) 复杂度的问题,但想知道是否有更好的版本我不考虑 O(logn)?
令 A= A[1]
我的解决方案相对简单,我相信会导致最坏情况下的 N 复杂度。也许我在想这个例子,但是有更好的解决方案吗?
我的解决方案
for(i = 1; i < n +1; i++) :
if(A[i-1] > i) :
return i
这背后的逻辑是,既然是排序的,第一个元素一定是1,第二个一定是2,以此类推,直到数组中的元素大于它应该是的元素,表示丢失了一个元素,返回它应该是的元素,我们有丢失的元素。
这是正确的逻辑吗?有没有更好的办法?
感谢您的阅读,并提前感谢您的帮助。
【问题讨论】:
-
是的。有一个更好的解决方案。提示:你真的需要查看数组中的每个元素吗?
-
请您清理一下您对问题的陈述好吗? (1) 如果 A 不同,则表示它们不相等;那么为什么不直接说“A[1]
标签: arrays algorithm sorting asymptotic-complexity