本文共 1128 字,大约阅读时间需要 3 分钟。
为了解决这个问题,我们需要找到一个方法,来生成一个最小的有序区间范围列表,这些区间恰好覆盖给定数组中的所有元素,并且不存在不在数组中的数字。
我们可以通过遍历数组来找到每个连续的区间。具体步骤如下:
这种方法利用了数组的有序性质,确保每个区间都是连续的整数序列。
def summaryRanges(nums): if not nums: return [] result = [] current_start = nums[0] current_end = current_start for num in nums[1:]: if num == current_end + 1: current_end = num else: if current_start == current_end: result.append(f"{current_start}") else: result.append(f"{current_start}->{current_end}") current_start = num current_end = num # 处理最后一个区间 if current_start == current_end: result.append(f"{current_start}") else: result.append(f"{current_start}->{current_end}") return result
这种方法确保了每个区间都是最小的连续整数序列,并且覆盖了数组中的所有元素。
转载地址:http://yadzz.baihongyu.com/