给定一个有序的list, 需要根据数据的连续性进行区间的汇总
实例如下:
解决方法:
设置左右指针,固定左指针,当右指针对应的数+1=右指针+1对应的数 and 右指针不要越界,就移动右指针,直到跳出while,并更新左指针=右指针+1
class Solution(object): def summaryRanges(self, nums: List[int]) -> List[str]: """ :type nums: List[int] :rtype: List[str] """ def return_str(input_list): if input_list[0] == input_list[1]: return str(nums[input_list[0]]) else: return f"{nums[input_list[0]]}->{nums[input_list[1]]}" start = 0 num_len = len(nums) result = [] while start < num_len: end = start while end + 1 < num_len and nums[end + 1] == nums[end] + 1: end += 1 result.append(return_str([start, end])) start = end + 1 return result
标签:end,nums,汇总,list,start,区间,input,指针 From: https://www.cnblogs.com/TW-NLP/p/18420572