leetcode刷題python之合併區間

2021-09-28 21:31:19 字數 696 閱讀 4711

emmm時間有些感人啊,看看能不能想辦法優化一些

思路為:先把陣列排序(元素是陣列也可排序,神奇),再判斷元素的左右邊界是否重疊,重疊則生成新的區間

太慢原因:使用了比較多的insert和pop,比一般的費時間

class solution:

def merge(self, intervals: list[list[int]]) -> list[list[int]]:

intervals.sort()

print(intervals)

n = len(intervals)

# for i in range(n - 1):

i = 0

while i < n:

if i + 1 <= len(intervals) - 1 and intervals[i][1] >= intervals[i + 1][0]:

intervals.insert(i, [intervals[i][0], max(intervals[i + 1][1], intervals[i][1])])

intervals.pop(i + 1)

intervals.pop(i + 1)

else:

i += 1

return intervals

方法二:

不使用insert和pop,把內容放到空列表中

Leetcode鍊錶刷題 pytho語言

為方便後續的使用查詢,記錄一下 函式包括 找到兩個單鏈表相交的起始節點 反轉單鏈表 刪除鍊錶中等於給定值 val 的所有節點 definition for singly linked list.class listnode object def init self,x self.val x self...

開始刷題LeetCode

今天決定開始刷題,每天至少一題,如果題目確實沒有解決出來沒有關係,但是要保證每天至少接觸了一道新的題目!一定要堅持下去,現在是個菜鳥可能會感覺有點難度,堅持下去,總有一天會好的!今天是第一天,做的第乙個題目 reverse words in a string given an input strin...

leetcode刷題歷程

難度 簡單 題目 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 ...