数组算法 1

/*
 * Example:
 * Given nums = [2, 7, 11, 15], target = 9,

    Because nums[0] + nums[1] = 2 + 7 = 9,
    return [0, 1].

 * @param {number[]} nums
 * @param {number} target
 * @return {number[]}
 */

function twoSum(nums, target) {
  var len = nums.length;
  var indexnumber = [];
  //  获取满足条件的数组元素
  for( var i = 0; i < len; i ++ ){
    var sub = target - nums[i]
    for( var j = 0; j < len; j ++ ){
      if( j != i && nums[j] == sub ){
        indexnumber.push(i,j)
      }
    }
  }
  // 数组去重
  var newnumbers = Array.from(new Set(indexnumber))
  var result = [];
  // 将数组切割为2个一组的新二维数组
  for( var i = 0 ; i < newnumbers.length ; i += 2 ){
    result.push(newnumbers.slice( i, i + 2 ))
  }
  return result
};

 

posted @ 2017-05-02 10:51  slardarr  阅读(79)  评论(0编辑  收藏  举报