Hao*_*hun 16 arrays algorithm integer linear-algebra
这是我的一个朋友作为他的家庭作业(在算法和数据结构类中)收到的问题.他问我这件事.但是,我无法解决它,并且在过去的几天里一直在思考它.
有Ñ范围随机整数[0,2 31 -1](有可能重复.确定是否3个数字,这些数字的满足甲 + 乙 = Ç.
我首先提出了一个O(n 2 log n)的天真算法.然后我想出了一个O(n 2)的算法.这是伪代码:
sort(a); // non-descending
for (i = 0; i < n; i++) {
j = i; k = i + 1;
while (j < n && k < n) {
if (a[i] + a[j] == a[k])
return true;
else if (a[i] + a[k] < a[j])
k++;
else
j++;
}
}
return false;
Run Code Online (Sandbox Code Playgroud)
然而,问题表明1 < n <= 10 6.我相信O(n 2)太慢了.我的解决方案没有利用随机性.但是,我不确定这是否是问题的重要部分.
归档时间: |
|
查看次数: |
5409 次 |
最近记录: |