/** * https://leetcode.cn/problems/summary-ranges/?envType=study-plan-v2&envId=top-interview-150 * @param {number[]} nums * @return {string[]} */ const summaryRanges = function (nums) { }; /* 思路:定义两个指针,一个指针表示区间的开头,一个表示区间的结尾,用left和right表示,right扫描连续区间,如果发现不 再连续就把left和right表示的连续区间加入到结果集 */ function f1(nums) { const result = []; let left = 0; while (left < nums.length) { let right = left; // 扫描连续区间 while (right + 1 < nums.length && nums[right + 1] === nums[right] + 1) { right++; } // 查看left和right是否相等,如果相等则这个区间只有一个数,否则是一个完整的区间,需要用left->right表示 if (left === right) { result.push(`${nums[left]}`); } else { result.push(`${nums[left]}->${nums[right]}`); } // 区间统计完毕,统计下一个区间 left = right + 1; } return result; }