aureooms-js-algo
Version:
playground for algorithmic code bricks in JavaScript
36 lines (24 loc) • 479 B
JavaScript
/**
* Hypothesis :
* - A is sorted in increasing order
* - B is sorted in increasing order
* - |A| > 0
* - |B| > 0
*/
var _3sum_n2 = function (A, ai, aj, B, bi, bj, C, ci, cj, fn) {
var hi, lo, a, b, c, v;
for (; ci < cj; ++ci) {
lo = ai;
hi = bj - 1;
do {
a = A[lo];
b = B[hi];
c = C[ci];
v = a + b;
if (-c === v) fn(a, b, c);
if (-c < v) --hi;
else ++lo;
} while (lo < aj && hi >= bi);
}
};
exports._3sum_n2 = _3sum_n2;