首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >打印缺号

打印缺号
EN

Stack Overflow用户
提问于 2022-11-14 08:47:32
回答 2查看 77关注 0票数 -1

因此,我有一个问题,关于打印丢失的数字。

我有一个从0到20的整数数组,应该返回一个缺失的数字字符串。

例如:

0,1,2,8,12,13将返回"3-7,9-11,14-20“

1,2,5,12,16将返回"0,3-4,6-11,13-15,17-20“

我只是很难把缺失的值打印成序列。

到目前为止,我的代码如下:

代码语言:javascript
运行
复制
function missingNumbers(arr){
    let count = 20;
    let missing = new Array();

    for(let i = 0; i <= count; i++){
        if(arr.indexOf(i) === -1){
            missing.push(i);
        }
    }
    return missing.toString();
}

console.log(missingNumbers([1,2]))

EN

回答 2

Stack Overflow用户

发布于 2022-11-14 09:43:41

将每个数组元素a[i]与一个稳定增长的整数计数器进行比较。

如果ai匹配,则转到下一个element

  • otherwise,数组(如果ai-1匹配),启动一个新的“缺失”range

  • otherwise,扩展当前的“缺失”范围

代码语言:javascript
运行
复制
// [0, 1, 2, 8, 12, 13] would return "3-7,9-11,14-20"


function test(a) {
let missing = [];

for (let curr = a[0], i = 0; i < a.length; curr++) {
    if (a[i] === curr) {
        i++
    } else if (a[i - 1] === curr - 1) {
        missing.push([curr, curr])
    } else {
        missing[missing.length - 1][1] = curr
    }
}

return missing
}


console.log(test([0, 1, 2, 8, 12, 13]))

打印留下的范围作为练习。

票数 0
EN

Stack Overflow用户

发布于 2022-11-14 10:05:44

代码语言:javascript
运行
复制
const missingNumbers = (arr = []) => {
    let s = null;
    arr.sort((a, b) => a - b);
    const missing = new Array(21).fill("").reduce((p, _, i) => {
        if (!arr.some(a => a === i) && s === null) s = i;
        if (arr.some(a => a === i) && s !== null) {
            s === (i - 1) ? p.push(s) : p.push(`${s}-${i-1}`);
            s = null;
        }
        return p;
    }, []);
    if (Math.max(...arr) !== 20) missing.push(`${Math.max(...arr) + 1 === 20 ? "20":Math.max(...arr) + 1 + "-20"}`);

    return missing;
}

console.log(missingNumbers([1, 2]));
console.log(missingNumbers([0, 1, 2, 8, 12, 13]));
console.log(missingNumbers([1, 2, 5, 12, 16]));

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

https://stackoverflow.com/questions/74428948

复制
相关文章

相似问题

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