有人相爱,有人开车看海,而我,leetcode第一题做不出来

217 阅读1分钟

两数之和:简单难度

首先就是都能想到的循环遍历,不用动脑子的,唯一要注意的就是二次循环的时候开始取值。题目限定数组中同一个元素不能出现两次,所以二次循环的开始取值要从i+1开始

function twoSum(nums: number[], target: number): number[] {
    for(let i = 0; i < nums.lengths; i++){
        for(let j:number = i + 1; j < nums.length; j++){
            if(nums[i] + nums[j] === target){
                return [i, j]
            }
        }
    }
}

第二种:循环一次

function twoSum(nums: number[], target: number): number[]{
    for(let i = 0; i < nums.length; i++){
        let poor = target - nums[i]
        if(nums.indexOf(poor) !== -1 && nums.indexOf(poor) !== i){
            return [i , nums.indexOf(poor)]
        }
    }
}