题解 | #数组分组#

数组分组

https://www.nowcoder.com/practice/9af744a3517440508dbeb297020aca86

题解如下,请参考:

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void async function () {
    // Write your code here
    let num = Number(await readline())
    let arr = (await readline()).split(' ').map(Number)
    //构建5的倍数、3的倍数的数组arr5和arr3,及剩余数字组成的数组arr
    let arr5 = [], arr3 = []
    for(let i=0; i<arr.length; i++){
        if(arr[i]%5 == 0){
            arr5.push(arr[i])
            arr.splice(i, 1)
            i--
        }else if(arr[i]%3 == 0){
            arr3.push(arr[i])
            arr.splice(i, 1)
            i--
        }
    }
  
    //将arr5和arr3的所有数值加和求出sum5和sum3
    let sum5=0, sum3=0
    if(arr5.length>0){
        for(let k of arr5){
            sum5 += k
        }
    }
    if(arr3.length>0){
        for(let k of arr3){
            sum3 += k
        }
    }

    //将sum5和sum3的差值和arr数组中的值放在同一数组中,并将将每个数字转化成正整数
    let newArr = [sum3-sum5, ...arr].map((n) => Math.abs(n))
    newArr.sort((a,b) => b-a)
    while(newArr.length>1){
        let big = newArr.shift()
        let small = newArr.shift()
        newArr.push(big-small)
        newArr.sort((a,b) => b-a)
    }
    console.log(newArr[0]==0)
}()
全部评论

相关推荐

一个菜鸡罢了:哥们,感觉你的简历还是有点问题的,我提几点建议,看看能不能提供一点帮助 1. ”新余学院“别加粗,课程不清楚是否有必要写,感觉版面不如拿来写一下做过的事情,教育经历是你的弱势就尽量少写 2. “干部及社团经历”和“自我评价”删掉 3. 论文后面的“录用”和“小修”啥的都删掉,默认全录用,问了再说,反正小修毕业前肯定能发出来 4. 工作经验和研究成果没有体现你的个人贡献,着重包装一下个人贡献
点赞 评论 收藏
分享
喜欢吃蛋糕仰泳鲈鱼是我的神:字节可以找个hr 给你挂了,再放池子捞
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务