var twoSum = function (numbers, target) {
const len = numbers.length;
for (let i = 0; i < len; i++) {
let left = i + 1, right = len - 1;
while (left <= right) {
const mid = left + right >> 1;
if (numbers[mid] === target - numbers[i]) {
return [i + 1, mid + 1];
} else if (numbers[mid] > target - numbers[i]) {
right = mid - 1;
} else {
left = mid + 1;
}
}
}
return [-1, -1];
}
167. 两数之和 II - 输入有序数组
示例:
解题代码
解体思路
解题代码
解题思路