diff --git a/merge-intervals/hu6r1s.py b/merge-intervals/hu6r1s.py new file mode 100644 index 000000000..4478ac2a6 --- /dev/null +++ b/merge-intervals/hu6r1s.py @@ -0,0 +1,9 @@ +class Solution: + def merge(self, intervals: List[List[int]]) -> List[List[int]]: + result = [] + for interval in sorted(intervals): + if not result or result[-1][1] < interval[0]: + result.append(interval) + else: + result[-1][1] = max(result[-1][1], interval[1]) + return result diff --git a/missing-number/hu6r1s.py b/missing-number/hu6r1s.py new file mode 100644 index 000000000..d4d24af1c --- /dev/null +++ b/missing-number/hu6r1s.py @@ -0,0 +1,6 @@ +class Solution: + def missingNumber(self, nums: List[int]) -> int: + for i in range(len(nums)): + if i not in nums: + return i + return len(nums) diff --git a/reorder-list/hu6r1s.py b/reorder-list/hu6r1s.py new file mode 100644 index 000000000..559f69259 --- /dev/null +++ b/reorder-list/hu6r1s.py @@ -0,0 +1,26 @@ +# Definition for singly-linked list. +# class ListNode: +# def __init__(self, val=0, next=None): +# self.val = val +# self.next = next +class Solution: + def reorderList(self, head: Optional[ListNode]) -> None: + """ + Do not return anything, modify head in-place instead. + """ + stack = [] + node = head + while node: + stack.append(node) + node = node.next + + node = dummy = ListNode(-1) + for i in range(len(stack)): + if i % 2: + node.next = stack.pop() + else: + node.next = head + head = head.next + node = node.next + node.next = None + return dummy.next