解题思路
根据示例,可以看出,如果区间中相邻的两个元素的差值大于1,那么就划分成2个区间。此外,根据题意,区间[a,b],如果a === b ,那么区间的值就直接是a。可以用一个值来存储区间的左侧区间,判断下一个值与当前值的差值是否大于1,如果大于1,判断当前的值是否与区间左侧的值相等,相等就直接插入左侧值,否则就插入类似于 a -> b 格式,然后 当前区间左侧的值为 nums[i]。代码如下:
代码
var summaryRanges = function(nums) {
const result = [];
const len = nums.length;
let s = nums[0];
for(let i = 1;i<=len;i++){
if(nums[i] - nums[i-1] == 1 ){
continue;
}else{
if(nums[i-1] === s){
result.push(`${s}`);
}else{
result.push(`${s}->${nums[i-1]}`);
}
s = nums[i]
}
}
return result;
};
const nums = [0,1,2,4,5,7];
console.log('--resylt--',summaryRanges(nums));