美文网首页
每日一练---codewars6 Range Extract

每日一练---codewars6 Range Extract

作者: 即将牛逼的蛋蛋 | 来源:发表于2020-08-12 15:29 被阅读0次

    补课!!昨天落下了一天,今天加倍练习。

    [-6, -3, -2, -1, 0, 1, 3, 4, 5, 7, 8, 9, 10, 11, 14, 15, 17, 18, 19, 20]
    return "-6,-3-1,3-5,7-11,14,15,17-20"
    题目意思呢 是连续的且超过三个以上,用范围表示,其他原样输出
    难度:4kyu

    思路

    • 倒序循环,双层循环
    • 用大的索引的值 - 小的索引的值 判断是否大于2 然后看索引的差值是否等于 值的差值 相等的话 说明是连续的
    • 数组截取 splice(开始索引,截取个数,需要插入的新的元素)
    • 完事儿

    下面就开始动手吧,能动手的尽量少动嘴

    function solution(list) {
        // 第一层循环
        for (var i = list.length - 1; i >= 0; i--) {
            // 第二层循环,从 0 开始最大值为 i ,
            for (var j = 0; j <= i; j++) {
                // 索引的差值和值的差值 是否相等  值得差值是否大于2  是的话 说明连续
                if (list[i] - list[j] >= 2 && list[i] - list[j] == i - j) {
                    var str = list[j] + '-' + list[i]
                    // 数组截取
                    list.splice(j, i - j + 1, str);
                }
            }
        }
        // 最后join() 方法变为字符串  大功告成
        return list.join()
    }
    
    solution([-6, -3, -2, -1, 0, 1, 3, 4, 5, 7, 8, 9, 10, 11, 14, 15, 17, 18, 19, 20])
    // , "-6,-3-1,3-5,7-11,14,15,17-20"
    

    相关文章

      网友评论

          本文标题:每日一练---codewars6 Range Extract

          本文链接:https://www.haomeiwen.com/subject/qnxmdktx.html