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 }