2011-02-09 36 views
0

在數組中找到總和爲目標值的2個元素。查找數組中的2個元素,其總和爲目標值

+5

你的問題似乎缺少一些細節。 `a = b [0] + b [1];`解決它。除此之外,還有更多。 – meagar 2011-02-09 01:12:43

+0

我認爲他的意思是在數組中找到2個元素,總和爲目標值。這是一個常見的面試問題。 – interjay 2011-02-09 01:14:40

回答

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 
相關問題