• 练习题 (三)


    题目:

    Summary Ranges

    Given a sorted integer array without duplicates, return the summary of its ranges.

    For example, given [0,1,2,4,5,7], return ["0->2","4->5","7"].

    答案:

    class Solution:
        # @param {integer[]} nums
        # @return {string[]}
        def summaryRanges(self, nums):
            return_list = []
            self.left = 0
            self.right = 0
            self.length = len(nums)
    
            if self.length == 0:
                return return_list
    
            for i in range(1, self.length):
                if (nums [i] - nums[i-1] != 1):
                    return_list.append(self._get_range(self.left, self.right, nums)),
                    self.left = i
                    self.right = i
                else:
                    self.right += 1
            return_list.append(self._get_range(self.left, self.right, nums))
    
            return return_list
    
        def _get_range(self, left, right, nums):
            if (left == right):
                return "{}".format(nums[left])
            else:
                return "{}->{}".format(nums[left], nums[right])

    心得:

    这题并不难,但是我想了比较久,没有考虑到的是这一句。“

    if (nums [i] - nums[i-1] != 1):

    我一直在想怎么样用一个自然数序列和输入序列,进行怎么循环比较,然后,把left和right弄出输出了。但是用两个序列是不必要的,纵向看不行,用横向看,就可以想通了。

  • 相关阅读:
    第二阶段团队冲刺第二天站立会议
    第二阶段冲刺第一天站立会议
    对身边常用的软件进行评价
    学习进度条
    进度条
    团队冲刺第四天站立会议
    用户模板及场景分析
    团队冲刺第一天战略会议
    团队冲刺第九天
    团队冲刺第八天
  • 原文地址:https://www.cnblogs.com/ender-cd/p/4611085.html
Copyright © 2020-2023  润新知