zoukankan      html  css  js  c++  java
  • 练习题 (三)

    题目:

    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弄出输出了。但是用两个序列是不必要的,纵向看不行,用横向看,就可以想通了。

  • 相关阅读:
    生成PDF文档
    2016 百度研发岗面试总结
    有趣的数
    2016阿里校招python研发面试
    python 快排,堆排,归并
    三种简单的排序写下贴上
    BestCoder Round #47 1003
    c++ 适配器
    微信公众平台-超级大赛问题汇总1
    正则表达式简单总结
  • 原文地址:https://www.cnblogs.com/ender-cd/p/4611085.html
Copyright © 2011-2022 走看看