给出数组数组有一项为只出现一次,其余项均为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]}
}