我目前正在做这个任务,它困扰着我如何计算一个数组中有多少对数字
这就是我以前尝试过的
function pairNumber (n,ar)
let numberOfPairs=0
for(let i =0;i<ar.length;i++){
for(let j =1;j<ar.length;j++){
if (ar[i] == ar[j]){
console.log([ar[i], ar[j]], '<< ini isinya')
console.log(ar[i+1], ar[j+1])
numberOfPairs++
ar.splice(i,1)
ar.splice(j,1)
}
}
}
if(n%3 == 0){
numberOfPairs -= 1
return numberOfPairs
} else {
return numberOfPairs
}
}
console.log(sockMerchant(9,[10,20,20,10,10,30,50,10,20]))
console.log(sockMerchant(10,[1,1,3,1,2,1,3,3,3,3]))但不幸的是,回报永远是
4
4正确答案应该是
3
4对于这两种情况,有人能帮我解决我错过的问题吗?谢谢你!
发布于 2019-10-03 03:19:54
我只需要先对数组进行排序,然后你只需要将数组循环一次。最好是控制你的代码
function pairNumber (n,ar){
let numberOfPairs=0
let i = 0
let j = 1
ar.sort()
for(let i = 0; i < ar.length; i++){
if(ar[i] == ar[i++]){
numberOfPairs++
i+=1
}
}
return numberOfPairs
}发布于 2019-10-03 02:56:53
由于这是一个简单的任务,我不打算详细解释。问题似乎出在循环变量初始化中。提示:j=i+1
https://stackoverflow.com/questions/58207632
复制相似问题