leetcode 136.只出现一次的数字

5 阅读1分钟

给出数组数组有一项为只出现一次,其余项均为2次,找出此只出现一次的项 先说一次错误解法:

for (let i = 0 ;i < nums.length ; i ++){
        for (let b = 0 ;b < nums.length ; b ++){
            if (nums[i] == nums[b] && i !=b){
                return
            }else{
                return nums[i]
            }
        }
    }

错误原因:直接return,并未内循环

第二次:

for (let i = 0 ;i < nums.length ; i ++){
        for (let b = 0 ;b < nums.length ; b ++){
            let a = null
            if (nums[i] == nums[b] && i !=b){
                a = i+1
            }
            return i
        }
    }

错误原因:记录循环的a在内循环声明,那么每次内循环a都变回null

第三次:

for (let i = 0 ;i < nums.length ; i ++){
            let a = false
        for (let b = 0 ;b < nums.length ; b ++){
            if (nums[i] == nums[b] && i !=b){
                a = true
            }
        }
         if (a){
         return nums[i]}
    }

错误原因:a定义错误

正确答案:

for (let i = 0 ;i < nums.length ; i ++){
            let a = true
        for (let b = 0 ;b < nums.length ; b ++){
            if (nums[i] == nums[b] && i !=b){
                a = false
            }
        }
         if (a){
         return nums[i]}
    }