From ad88b1659942494d93dfe71a9bcd61bbeddbb172 Mon Sep 17 00:00:00 2001 From: delight010 Date: Tue, 7 Oct 2025 05:22:57 +0900 Subject: [PATCH 1/3] solve problem --- same-tree/delight010.swift | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 same-tree/delight010.swift diff --git a/same-tree/delight010.swift b/same-tree/delight010.swift new file mode 100644 index 000000000..b54f19e29 --- /dev/null +++ b/same-tree/delight010.swift @@ -0,0 +1,37 @@ +public class TreeNode { + public var val: Int + public var left: TreeNode? + public var right: TreeNode? + public init() { self.val = 0; self.left = nil; self.right = nil; } + public init(_ val: Int) { self.val = val; self.left = nil; self.right = nil; } + public init(_ val: Int, _ left: TreeNode?, _ right: TreeNode?) { + self.val = val + self.left = left + self.right = right + } +} + +class Solution { + // Time O(n) + // Space best O(log n) + // Space worst O(n) + func isSameTree(_ p: TreeNode?, _ q: TreeNode?) -> Bool { + return dfs(p, q) + } + + private func dfs(_ p: TreeNode?, _ q: TreeNode?) -> Bool { + if p == nil && q == nil { + return true + } + + guard let p = p else { return false } + guard let q = q else { return false } + + if p.val != q.val { + return false + } + + return dfs(p.left, q.left) && dfs(p.right, q.right) + } +} + From 1422ade80f502fc25c4bd6c5a22d9b248f40f311 Mon Sep 17 00:00:00 2001 From: delight010 Date: Wed, 8 Oct 2025 19:38:09 +0900 Subject: [PATCH 2/3] solve problem --- .../delight010.swift | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 remove-nth-node-from-end-of-list/delight010.swift diff --git a/remove-nth-node-from-end-of-list/delight010.swift b/remove-nth-node-from-end-of-list/delight010.swift new file mode 100644 index 000000000..3211537c3 --- /dev/null +++ b/remove-nth-node-from-end-of-list/delight010.swift @@ -0,0 +1,36 @@ +public class ListNode { + public var val: Int + public var next: ListNode? + public init() { self.val = 0; self.next = nil; } + public init(_ val: Int) { self.val = val; self.next = nil; } + public init(_ val: Int, _ next: ListNode?) { self.val = val; self.next = next; } +} + +class Solution { + // Time O(n) + // Space O(1) + func removeNthFromEnd(_ head: ListNode?, _ n: Int) -> ListNode? { + var slow: ListNode? = head + var fast: ListNode? = head + var prev: ListNode? + + for _ in 1...n { + fast = fast?.next + } + + while fast != nil { + prev = slow + slow = slow?.next + fast = fast?.next + } + + if prev != nil { + prev?.next = slow?.next + } else { + return head?.next + } + + return head + } +} + From 8b9bad6b24966e6c2747ff7d62da67a2f7cfa25e Mon Sep 17 00:00:00 2001 From: delight010 Date: Fri, 10 Oct 2025 11:52:48 +0900 Subject: [PATCH 3/3] solve problem --- non-overlapping-intervals/delight010.swift | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 non-overlapping-intervals/delight010.swift diff --git a/non-overlapping-intervals/delight010.swift b/non-overlapping-intervals/delight010.swift new file mode 100644 index 000000000..c230fbdd8 --- /dev/null +++ b/non-overlapping-intervals/delight010.swift @@ -0,0 +1,22 @@ +class Solution { + // Time O(n log n) + // Space O(n) + func eraseOverlapIntervals(_ intervals: [[Int]]) -> Int { + if intervals.count < 2 { return 0 } + + var answer = 0 + let intervals = intervals.sorted { $0[1] < $1[1] } + var currentInterval = intervals[0] + + for i in 1..