汇总区间

给定一个有序的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

 

posted @ 2024-09-19 15:00  TW-NLP  阅读(7)  评论(0编辑  收藏  举报