Overlapping discs

by rishul matta

JavaScript

function solution(A) {

		if (A.length < 1) {
    	return 0;
    }
    // write your code in JavaScript (Node.js 8.9.4)
    debugger;
    function sort(array) {

        var length = array.length,
            mid = Math.floor(length * 0.5),
            left = array.slice(0, mid),
            right = array.slice(mid, length);

        if (length === 1) {
            return array;
        }

        return merge(sort(left), sort(right));

    }


    function merge(left, right) {

        var result = [];

        while (left.length || right.length) {

            if (left.length && right.length) {

                if (left[0].start < right[0].start) {
                    result.push(left.shift());
                } else {
                    result.push(right.shift());
                }

            } else if (left.length) {
                result.push(left.shift());
            } else {
                result.push(right.shift());
            }

        }

        return result;

    }


    let intervals = sort(A.map(function(rad, index) {
        return {
            start: index - rad,
            end: index + rad
        }
    }));

    let intersection = 0;
    
    debugger;
  for (var j = 0; j < intervals.length; ++j) {
    let endingTime = intervals[j].end;
      for (var i = j + 1; i < intervals.length; ++i) {
          if (intervals[i].start <= endingTime) {
              intersection++;
          }
      }
    }

    return intersection;


}

alert(solution([0,1,0]))