228.汇总区间

时游小于 1 分钟LeetCode

228.汇总区间

/*
 * @lc app=leetcode.cn id=228 lang=typescript
 *
 * [228] 汇总区间
 */

// @lc code=start
function summaryRanges(nums: number[]): string[] {
	if (nums.length === 0) return [];
	if (nums.length === 1) return nums.map(el => String(el));

	let res: string[] = [];
	let start: number | null = null;
	for (let i = 0; i < nums.length; i++) {
		if (start == null) start = nums[i];
		let preStart: number = nums[i];
		if (preStart + 1 == nums[i + 1]) {
			preStart = nums[i + 1];
		} else {
			if (start == preStart) {
				res.push(`${start}`);
			} else {
				res.push(`${start}->${preStart}`);
			}
			start = null;
		}
	}

	return res;
}
// @lc code=end

上次编辑于:
贡献者: 15327360835
Loading...