假设你有一个未排序的整数数组,如下所示:
A = {3,4,5,1,4,2}
输入: 6
输出: {5,1}, {4,2}
如何以O(n)或O(log n)的时间复杂度实现此功能?欢迎任何建议。
更新:我们能否编写比这更有效率的代码?
for(int i=0;i<array.length-1;i++)
{
if(array[i]+array[i+1]==6)
System.out.println("{"+array[i]+","+array[i+1]+"}");
}
k=6
,如果A={2,3,4}
,即使{2,4}=6
,也不会返回任何东西。此外,你的算法是O(n),因此不能编写更有效的算法,但可以编写更正确的算法。 - kba