js-algorithms/other/set-pair-sum-debug.js

33 lines
668 B
JavaScript
Raw Normal View History

2015-07-24 06:44:18 +00:00
'use strict';
let _ = require('../utils'),
mergeSort = require('../sort/merge');
let args = _.args.numbers(),
set = args.slice(0, -1),
key = args[args.length-1];
function findPair(arr, key) {
_.debug(`findPair(arr, ${key})`);
mergeSort(arr, 0, arr.length);
let i = 0,
j = arr.length-1;
for(let x = 0, len = arr.length-1; x < len; x++) {
let sum = arr[i] + arr[j];
_.debug(`sum = (arr[${i}]=${arr[i]}) + (arr[${j}]=${arr[j]}) = ${sum}`);
if(sum === key) return true;
if(sum > key) j--;
if(sum < key) i++;
}
return false;
}
if(require.main === module) {
_.log(findPair(set, key));
}
module.exports = findPair;