程序在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