思路:两层while循环,内层遍历出数组中的不间断区间,添加到新的数组中并删除原数组被添加项,外层判断原数组是否已经为空,为空则退出循环,最后返回新数组,时间复杂度O(n),空间复杂度O(1),代码如下:
/**
* @param {number[]} nums
* @return {string[]}
*/
var summaryRanges = function(nums) {
let currentIndex=0
let backs=[]
while(nums.length>0){
while(nums[currentIndex+1]-nums[currentIndex]===1){
currentIndex++
}
if(currentIndex===0){
backs.push(nums[0].toString())
}else{
backs.push(`${nums[0]}->${nums[currentIndex]}`)
}
nums.splice(0,currentIndex+1)
currentIndex=0
}
return backs
};