一個 int 數組(size > 2)中,其中兩個數之和等于規(guī)定的一個數教藻,找出這兩個數在數組中的下標距帅。
假設數組元素的值各不相同,則要求時間復雜度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讥电,輸出這兩個數的數組下標。