diff --git a/merge-intervals/delight010.swift b/merge-intervals/delight010.swift new file mode 100644 index 000000000..6f938f5b3 --- /dev/null +++ b/merge-intervals/delight010.swift @@ -0,0 +1,31 @@ +class Solution { + // Time O(n log n) + // Space O(n) + func merge(_ intervals: [[Int]]) -> [[Int]] { + if intervals.count <= 1 { + return intervals + } + + let intervals = intervals.sorted { $0[0] <= $1[0] } + var answer: [[Int]] = [] + var currentInterval: [Int] = [] + + for i in 0..= currentInterval[0] && intervals[i][0] <= currentInterval[1] { + currentInterval = [currentInterval[0], max(currentInterval[1], intervals[i][1])] + } else { + answer.append(currentInterval) + currentInterval = intervals[i] + } + } + + answer.append(currentInterval) + + return answer + } +} + diff --git a/missing-number/delight010.swift b/missing-number/delight010.swift new file mode 100644 index 000000000..d0e023ca8 --- /dev/null +++ b/missing-number/delight010.swift @@ -0,0 +1,14 @@ +class Solution { + // Time O(n) + // Space O(1) + func missingNumber(_ nums: [Int]) -> Int { + var sum = 0 + for i in 0.. ListNode? { + var prev: ListNode? = nil + var current = head + + while current != nil { + let nextTemp = current?.next + current?.next = prev + prev = current + current = nextTemp + } + + return prev + } + + private func mergeLists(_ list1: ListNode?, _ list2: ListNode?) { + var first = list1 + var second = list2 + + while first != nil && second != nil { + let firstNext = first?.next + let secondNext = second?.next + + first?.next = second + second?.next = firstNext + + first = firstNext + second = secondNext + } + } +} +