/** * * @param numbers int整型一维数组 * @param target int整型 * @return int整型一维数组 */ function twoSum( numbers , target ) { // write code here for(let i=0; i<numbers.length; i++) { let n1 = numbers[i] if (n1 > target) continue; let n2 = target - n1 let j = numbers.lastIndexOf(n2) if (numbers.includes(n2) && j > 0 && j !== i) { return [i+1, j+1] } } } module.exports = { twoSum : twoSum };
主要在于否定:
- 一旦发现大于target,直接continue
- 一旦找到答案,直接return,结束循环