diff --git a/course-schedule/delight010.swift b/course-schedule/delight010.swift new file mode 100644 index 000000000..6afa0b053 --- /dev/null +++ b/course-schedule/delight010.swift @@ -0,0 +1,38 @@ +class Solution { + // Time O(V + E) + // Space O(V + E) + func canFinish(_ numCourses: Int, _ prerequisites: [[Int]]) -> Bool { + var indegree: [Int] = Array(repeating: 0, count: numCourses) + var queue: [Int] = [] + var graph: [[Int]] = Array(repeating: [], count: numCourses) + + for i in 0.. TreeNode? { + guard let root = root else { + return nil + } + + var queue: [TreeNode] = [root] + + while queue.isEmpty == false { + let current = queue.removeFirst() + + if let left = current.left { + queue.append(left) + } + + if let right = current.right { + queue.append(right) + } + + (current.left, current.right) = (current.right, current.left) + } + + return root + } +} + diff --git a/jump-game/delight010.swift b/jump-game/delight010.swift new file mode 100644 index 000000000..998dec799 --- /dev/null +++ b/jump-game/delight010.swift @@ -0,0 +1,16 @@ +class Solution { + // Time O(n) + // Space O(1) + func canJump(_ nums: [Int]) -> Bool { + var maxReachIndex = 0 + for i in 0.. maxReachIndex { + return false + } + maxReachIndex = max(maxReachIndex, nums[i] + i) + } + + return maxReachIndex >= nums.count - 1 + } +} +