两数之和2

有序数组版两数之和题目的双指针解法与实现示例

#type / howto #status / evergreen #resource / algorithm #algo / two-pointers #source / leetcode #topic / leetcode100

[!info] related notes

两数之和2

function twoSum(numbers: number[], target: number): number[] {
    let left = 0;
    let right = numbers.length - 1;

    while (left < right) {
        const sum = numbers[left] + numbers[right];

        if (sum === target) {
            return [left, right];
        }
        // 利用数组有序的特性:
        // 如果和太大,收缩右边界;如果和太小,增加左边界。
        sum > target ? right-- : left++;
    }

    return []; // 题目保证有解,但加上兜底是个好习惯
}
创建于 2026/3/4 更新于 2026/5/27