一、题目

二、分析
1.双指针:在一个递增数组里,一头 i 指向数组里的最小值,一头 j 指向数组里的最大值,当 i + j 的值大于目标值,说明 j 的当前数组太大,要向左边递减,反之小于目标值,i 的当前数组太小,要向右边递增。
三、代码
/** * @param {number[]} nums * @param {number} target * @return {number[]} */ var twoSum = function(nums, target) { let i = 0; let j = nums.length-1; while( i<j ){ if( nums[i] + nums[j] === target) return [nums[i],nums[j]]; if( nums[i] + nums[j] > target) j--; else i++; } return null; };
浙公网安备 33010602011771号