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
}