diff --git a/linked-list-cycle/delight010.swift b/linked-list-cycle/delight010.swift new file mode 100644 index 000000000..0deb5622d --- /dev/null +++ b/linked-list-cycle/delight010.swift @@ -0,0 +1,29 @@ +public class ListNode { + public var val: Int + public var next: ListNode? + public init(_ val: Int) { + self.val = val + self.next = nil + } +} + + +class Solution { + // Time O(n) + // Space O(1) + func hasCycle(_ head: ListNode?) -> Bool { + var slow: ListNode? = head + var fast: ListNode? = head + + while fast != nil && fast?.next != nil { + slow = slow?.next + fast = fast?.next?.next + + if slow === fast { + return true + } + } + return false + } +} + diff --git a/sum-of-two-integers/delight010.swift b/sum-of-two-integers/delight010.swift new file mode 100644 index 000000000..1e5513f38 --- /dev/null +++ b/sum-of-two-integers/delight010.swift @@ -0,0 +1,18 @@ +class Solution { + // Time O(log n) + // Space O(1) + func getSum(_ a: Int, _ b: Int) -> Int { + var a = a + var b = b + + while b != 0 { + var sum = a ^ b + var carry = (a & b) << 1 + a = sum + b = carry + } + + return a + } +} +