一组无序的自然数集合,由0,1,2... ...,n的数字和一个的数字X(X>=0 && X<=n)组成,请从集合中找出这个重复数字X。
一组无序的自然数集合,由0,1,2... ...,n的数字和一个的数字X(X>=0 && X<=n)组成,请从集合中找出这个重复数字X。
空格分割的自然数集合
重复数字
9 6 4 2 1 3 5 7 0 1 8
1
0,1,2,3,4,5,6,7,8,9 + 1
3 0 2 2 1
2
0,1,2,3 + 2
const readline = require('readline')
const rl = readline.createInterface({
input: process.stdin,
ouput: process.stdout
})
let inArr = []
rl.on('line',line=>{
if(!line) return
inArr.push(line.trim())
if(inArr.length === 1){
let arr = inArr[0].split(' ').map(e => +e)
console.log(findRepeat(arr))
//解法一 排序比较
// let res = {}
// for (let i = 0; i < arr.length; i++) {
// if(!res[arr[i]]){
// res[arr[i]] = 1
// }else{
// console.log(arr[i])
// break
// }
// }
}
})
//解法二 Set()
function findRepeat(arr) {
const set = new Set()
for (let i = 0; i < arr.length; i++) {
if(set.has(arr[i])) return arr[i]
set.add(arr[i])
}
return 0
}