228 彙總區間(雙指標劃窗)

2021-10-01 02:01:42 字數 1256 閱讀 9285

給定乙個無重複元素的有序整數陣列,返回陣列區間範圍的彙總。

示例 1:

輸入: [0,1,2,4,5,7]

輸出: ["0->2","4->5","7"]

解釋: 0,1,2 可組成乙個連續的區間; 4,5 可組成乙個連續的區間。

示例 2:

輸入: [0,2,3,4,6,8,9]

輸出: ["0","2->4","6","8->9"]

解釋: 2,3,4 可組成乙個連續的區間; 8,9 可組成乙個連續的區間。

【中等】

【分析】沒什麼難度。。。直接暴力解題吧

class solution(object):

def summaryranges(self, nums):

""":type nums: list[int]

:rtype: list[str]

"""if len(nums)==0:

return

res=

start,end,flag=str(nums[0]),str(nums[0]),1

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

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

end=str(nums[i])

flag+=1

else:

if start!=end:

else:

start,end,flag=str(nums[i]),str(nums[i]),flag+1

if flag==len(nums):

if start!=end:

else:

return res

這道題雖然沒有什麼難度,依然可以想想其他方法開拓思路:劃窗/雙指標。**更加優雅:

class solution(object):

def summaryranges(self, nums):

""":type nums: list[int]

:rtype: list[str]

"""res=

l,r=0,1

while r<=len(nums):

if rpass

elif nums[l]==nums[r-1]:

l=r

else:

l=rr+=1

return res

228 彙總區間

給定乙個無重複元素的有序整數陣列 nums 返回 恰好覆蓋陣列中所有數字 的 最小有序 區間範圍列表。也就是說,nums 的每個元素都恰好被某個區間範圍所覆蓋,並且不存在屬於某個範圍但不屬於 nums 的數字 x 列表中的每個區間範圍 a,b 應該按如下格式輸出 a b 如果 a b a 如果 a ...

leetcode 228 彙總區間

給定乙個無重複元素的有序整數陣列 nums 返回 恰好覆蓋陣列中所有數字 的 最小有序 區間範圍列表。也就是說,nums 的每個元素都恰好被某個區間範圍所覆蓋,並且不存在屬於某個範圍但不屬於 nums 的數字 x 列表中的每個區間範圍 a,b 應該按如下格式輸出 a b 如果 a b a 如果 a ...

228 彙總區間 力扣(LeetCode)

給定乙個無重複元素的有序整數陣列,返回陣列區間範圍的彙總。示例 1 輸入 0,1,2,4,5,7 輸出 0 2 4 5 7 解釋 0,1,2 可組成乙個連續的區間 4,5 可組成乙個連續的區間。示例 2 輸入 0,2,3,4,6,8,9 輸出 0 2 4 6 8 9 解釋 2,3,4 可組成乙個連續...