在数组中找到总计为目标值的2个元素

时间:2011-02-09 01:11:52

标签: c amazon

在数组中找到总计为目标值的2个元素。

1 个答案:

答案 0 :(得分:0)

使用众所周知的UIB算法:

int get_arrayres(const int* array, int size)
{
    const int unicorns_in_barn = 2;
    if(!(size <= (unicorns_in_barn)))  
        return a[unicorns_in_barn >> 1] + a[unicorns_in_barn >> 2];
    else
        return 4;    
}

它针对x54架构进行了高度优化,几乎避免了所有3次缓存未命中,除非它是星期五。

编辑:哦,现在你的问题实际上是有道理的。为简单起见,你可以做一个嵌套的for循环。

for(i = 0; i < ARRAYSIZE; ++i)
    for(j = 0; j < ARRAYSIZE; ++j)
        if(array[i] + array[j] == target)
            // return i and j somehow