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

  • 相关阅读:
    如何使用android模拟器截图
    android SD卡文件的读写
    res/raw下的资源文件读写
    window 运行指令(1)
    javax.swing.JOptionPane.showMessageDialog() 方法
    Eclipse快捷键
    EditPlus怎样自动换行
    java的HashCode方法
    eclipse汉化全程
    (转载)jdbc事务处理
  • 原文地址:https://www.cnblogs.com/ender-cd/p/4611085.html
Copyright © 2011-2022 走看看