一个 int 数组(size > 2)中,其中两个数之和等

2016-08-24  本文已影响466人  并肩走天涯

一个 int 数组(size > 2)中,其中两个数之和等于规定的一个数,找出这两个数在数组中的下标。
假设数组元素的值各不相同,则要求时间复杂度O(n),n为数组的长度。

var hasNum = function ( a, target ) {   
  let result = [];
  // Array default sort
  let i = 0, j = a.length - 1;   
  while (i < j) {      
    if (a[i] + a[j] == target) {
           result.push(i);
         result.push(j);
         return result;
    }      
    if (a[i] + a[j] > target) {
       j--;      
    }      
    if (a[i] + a[j] < target) {         
       i++;      
    }   
  }
};

console.log(hasNum([1,5,7,3],10));

输入数组为[1,5,7,3]以及指定的目标值为10,可以从中找出两个数3和7,和为10,输出这两个数的数组下标。

上一篇下一篇

猜你喜欢

热点阅读