【发布时间】:2015-01-06 00:01:07
【问题描述】:
嗨,我有这个 PermCheck 代码的解决方案。这是包含问题的链接:https://codility.com/demo/results/demo73YNCU-8FK/
我得到了 100%,但我得到了 O(N * log(N)) 或 O(N) 的时间复杂度。 我怎样才能使这个代码 O(N)?您能否简要描述一下代码 O(N) 的原因?谢谢。
这里的快捷方式代码:
Array.Sort(A);
if(A[0] == 1 && A.Length == 1) return 1;
if(A[0] != 1) return 0;
int n = 0;
for(int i = 0; i < A.Length; i++)
{
if(i < A.Length - 1)
{
if(A[i+1] == A[i] + 1)
{
n += 1;
}
else
{
return 0;
}
}
}
return 1;
【问题讨论】:
-
我认为这更适合codereview.stackexchange.com。
-
谢谢Abrixas2。我会把它贴在那里
-
nlogn 是因为 Array.Sort() 使用快速排序我猜..
标签: c# performance algorithm time-complexity