首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何计算数组中有多少对数字

如何计算数组中有多少对数字
EN

Stack Overflow用户
提问于 2019-10-03 02:49:02
回答 2查看 407关注 0票数 0

我目前正在做这个任务,它困扰着我如何计算一个数组中有多少对数字

这就是我以前尝试过的

代码语言:javascript
复制
 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]))

但不幸的是,回报永远是

代码语言:javascript
复制
4
4

正确答案应该是

代码语言:javascript
复制
3
4

对于这两种情况,有人能帮我解决我错过的问题吗?谢谢你!

EN

回答 2

Stack Overflow用户

发布于 2019-10-03 03:19:54

我只需要先对数组进行排序,然后你只需要将数组循环一次。最好是控制你的代码

代码语言:javascript
复制
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
     }
票数 1
EN

Stack Overflow用户

发布于 2019-10-03 02:56:53

由于这是一个简单的任务,我不打算详细解释。问题似乎出在循环变量初始化中。提示:j=i+1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58207632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档