一个 int 数组(size > 2)中,其中两个数之和等于规定的一个数,找出这两个数在数组中的下标

一个 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,输出这两个数的数组下标。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容