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