查找以下数字系列



我有一个简单的算法问题,不知怎么的,我已经挣扎了一段时间。也就是说,我有这样的数据:

[('standby', [16, 17]),
 ('unavailable', [15, 18, 19, 20]),
 ('work', [7, 8, 9, 10, 12, 13])]

我想用下面的一系列数字来代替它:

['standby', '16 - 17'],
['unavailable', '15'],
['unavailable', '18 - 20'],
['work', '7 - 10'],
['work', '12 - 13'],

有人能给我指正确的方向吗?

提前谢谢。

非常基本的o(n)算法,传递以下数字,直到它们不跟随,保存为XX-XX,然后继续传递其余数字,直到结束。

findFollowingNumbers (numberArr, i) :
first = numberArr[i]
while (numberArr[i] + 1 == numberArr[i+1] || i == numberArr.length - 1)
    i++
last = numberArr[i]
//save somewhere as first + " - " + last
findFollowingNumbers(numberArr, i)

其中例如numberArr = [16, 17],并且第一个调用将是findFollowingNumbers(numberArr, 0)

最新更新