美文网首页
一个 int 数组(size > 2)中,其中两个数之和等

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

作者: 并肩走天涯 | 来源:发表于2016-08-24 12:15 被阅读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,输出这两个数的数组下标。

    相关文章

      网友评论

          本文标题:一个 int 数组(size > 2)中,其中两个数之和等

          本文链接:https://www.haomeiwen.com/subject/rbtosttx.html