1.牺牲空间法
利用一个对象,将访问过的数字保存到对象里
function duplicate(numbers, duplication)
{
let obj = {}
for(let i of numbers){
if(!obj[i])obj[i] = 1
else {
duplication[0] = i
return true
}
}
return false
}2.利用已有数组
把数组的第(访问过的元素+数组长度)记录为true。接下来的遍历只需确定这个位置是否为true
function duplicate(numbers, duplication){
let len = numbers.length
for(let i =0;i<len;i++){
if(numbers[numbers[i]+len]){
duplication[0] = numbers[i]
return true
}else numbers[numbers[i]+len] = true
}
return false
}
京公网安备 11010502036488号