
方法一
哈希表/Set
方法二:原地交換
數(shù)組元素的索引和值是一對多的關(guān)系
因此可以遍歷數(shù)組并通過交換操作,使元素的索引與值一一對應(yīng),即nums[i]=i。就可以通過索引映射對應(yīng)的值,起到與字典等價的作用。

遍歷中,第一次遇到數(shù)字x時,將其交換至索引x處,而當(dāng)?shù)诙斡龅綌?shù)字x時,一定有numsp[x] = x,此時就可以得到一組重復(fù)的數(shù)字
var findRepeatNumber1 = function (nums) {
const obj = {}
for (const i of nums) {
if (!obj[i]) {
obj[i] = true
} else {
return i
}
}
}
var findRepeatNumber2 = function (nums) {
for (let i = 0; i < nums.length; i++) {
if (i === nums[i]) {
continue
} else {
let temp = nums[nums[i]]
if (temp === nums[i]) {
return temp
}
nums[nums[i]] = nums[i]
nums[i] = temp
}
}
}
console.log(findRepeatNumber2([2, 3, 1, 0, 2, 5, 3]));