three sum solution hash

by raviteja gunda

JavaScript

/**
 * @param {list_int32} arr
 * @return {list_str}
 */
function find_zero_sum(arr, target) {
    let result = [];
    let hash = {};
     let size = arr.length;
     arr.sort((a, b) => a - b);
     for (let i = 0; i < size; i++) {
         let target = arr[i] * - 1;
         let start_pointer = i + 1;
         let end_pointer = size - 1;
         while (start_pointer < end_pointer) {
            let sum = arr[start_pointer] + arr[end_pointer];
            if (sum == target) {
                var newComb = arr[i] + "," + arr[start_pointer] + ","  + arr[end_pointer];
                if(!hash.hasOwnProperty(newComb)) {
                    result.push(newComb);
                    hash[newComb] = i;
                }
                start_pointer++;
            } else if (sum > target) {
                end_pointer--;
            } else {
                start_pointer++
            }
        }
     }
     return result;
 }
 
 
console.log(find_zero_sum([10,4,-4,6,-6,9,-4], 0));
console.log(find_zero_sum([-1, -1, 0, 0, 1, 1], 0));
console.log(find_zero_sum([0, 0, 0], 0));