Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 6x 6x 6x 6x 13x 13x 1x 12x 1x 11x 4x 7x 2x 5x 5x 6x | export default function twoSum(numbers: number[], target: number): number[] {
const res: number[] = []
let lo = 0
let hi = numbers.length - 1
while (lo < hi) {
const mid = lo + ((hi - lo) >> 1)
if (numbers[lo] + numbers[mid] > target) {
hi = mid - 1
} else if (numbers[hi] + numbers[mid] < target) {
lo = mid + 1
} else if (numbers[lo] + numbers[hi] < target) {
lo++
} else if (numbers[lo] + numbers[hi] > target) {
hi--
} else {
res.push(lo + 1, hi + 1)
break
}
}
return res
}
|