szybki algorytm znajdowania sum w tablicy

Szukam szybkiego algorytmu:

Mam tablicę int o rozmiarze n, celem jest znalezienie wszystkich wzorców w tablicy
x1, x2, x3 are different elements in the array, such that x1+x2 = x3

Na przykład wiem, że jest tablica int o rozmiarze 3[1, 2, 3] wtedy jest tylko jedna możliwość: 1 + 2 = 3 (rozważ 1 + 2 = 2 + 1)

Myślę o implementacji par i haszmap, aby algorytm był szybki. (najszybszy, jaki otrzymałem, jest nadalO(n^2))

Podziel się swoim pomysłem na ten problem, dziękuję