程序在Python中查找唯一数组的连续间隔

假设我们有一个称为nums的唯一数字列表。我们必须找到数字的排序2D矩阵,其中每个列表代表一个汇总范围(以数字表示)的包含范围。

因此,如果输入类似于nums = [10,11,12,15,15,16,17,28,30],则输出将为[[10,12],[15,17],[28,28] ,[30、30]],如列表[10至12],[15至17]是连续的,并且那里有28和30,它们分别表示为[28至28]和[30至30]。

为了解决这个问题,我们将按照以下步骤操作:

  • 排序列表编号

  • 在num的末尾插入无穷大

  • ans:=新列表


  • l:= nums [0]

  • 对于范围为1到nums的i

    • 在ans的末尾插入[l,nums [i-1]]

    • l:= nums [i]

    • 如果nums [i]与nums [i-1] + 1不同,则

    • 返回ans

    让我们看下面的实现以更好地理解-

    示例

    class Solution:

    def solve(self, nums):

       nums.sort()

       nums.append(1e9)

       ans=[]

       l=nums[0]

       for i in range(1,len(nums)):

          if nums[i] != nums[i-1] + 1:

             ans.append([l, nums[i-1]])

             l=nums[i]

       return ans

    ob = Solution()nums = [10, 11, 12, 15, 16, 17, 28, 30]

    print(ob.solve(nums))

    输入值

    [10, 11, 12, 15, 16, 17, 28, 30]

    输出结果

    [[10, 12], [15, 17], [28, 28], [30, 30]]

    以上是 程序在Python中查找唯一数组的连续间隔 的全部内容, 来源链接: utcz.com/z/357386.html

    回到顶部